teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

追記

2020/02/13 12:45

投稿

noname1234
noname1234

スコア6

title CHANGED
File without changes
body CHANGED
@@ -3,6 +3,13 @@
3
3
  色々と試行錯誤してみましたが、Log.d("urlB",urlB)の時点で想定のURLが取得できていません。
4
4
  お手数ですが、ご教示のほどよろしくお願い致します。
5
5
 
6
+ ※追記
7
+ 実現方法としては、AsyncTaskを継承したクラスファイルをAPIの処理毎に用意(3つ)して、
8
+ 外部API(1)処理のcreateListener1()のonSuccess()内で、
9
+ 外部API(2)処理のcreateListener2()を呼び出し、
10
+ createListener2()のonSuccess()内でcreateListener3()を呼び出す形となりますでしょうか。
11
+ 開発素人のため、そもそも誤っていたら指摘ください。
12
+
6
13
  ### 実現したいこと
7
14
  0. ボタンをクリック
8
15
  0. EditTextに入力された内容をもとにURLを作成

2

ソースの抜けを修正

2020/02/13 12:45

投稿

noname1234
noname1234

スコア6

title CHANGED
File without changes
body CHANGED
@@ -156,6 +156,7 @@
156
156
  testA = responseData1;
157
157
  testB = responseData2;
158
158
 
159
+             String urlB = TO_API2 + "api_id=" + API_ID + str1 + str2 + "&lang=" + LANG;
159
160
              getAsyncTask = new GetAsyncTask(MainActivity.this);
160
161
         getAsyncTask.setListener(createListener2());
161
162
         getAsyncTask.execute(urlB);

1

指摘を含めた修正

2020/02/13 09:41

投稿

noname1234
noname1234

スコア6

title CHANGED
File without changes
body CHANGED
@@ -144,4 +144,25 @@
144
144
  }
145
145
  return result;
146
146
  }
147
+ ```
148
+
149
+ ```MainActivity修正
150
+ private GetAsyncTask.Listener createListener1() {
151
+ return new GetAsyncTask.Listener() {
152
+ @Override
153
+ public void onSuccess(InputStream xml) {
154
+ try {
155
+ getXMLContents(xml);
156
+ testA = responseData1;
157
+ testB = responseData2;
158
+
159
+             getAsyncTask = new GetAsyncTask(MainActivity.this);
160
+        getAsyncTask.setListener(createListener2());
161
+        getAsyncTask.execute(urlB);
162
+ } catch (Exception e) {
163
+ e.printStackTrace();
164
+ }
165
+ }
166
+ };
167
+ }
147
168
  ```