「GameActivity」があり、レイアウトを設定するには、リモート API を複数回呼び出す必要があり、AsyncHttpClient パッケージhttp://loopj.com/android-async-http/を使用してこれを達成する最善の方法を考えなければなりません。
単一の API 呼び出しの現在のセットアップ:
public class MainActivity extends Activity implements AdapterView.OnItemClickListener, SwipeRefreshLayout.OnRefreshListener{
ListView mainListView;
JSONMainAdapter mJSONAdapter;
SwipeRefreshLayout swipeLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
swipeLayout = (SwipeRefreshLayout) findViewById(R.id.main_swipe_container);
swipeLayout.setOnRefreshListener(this);
swipeLayout.setColorScheme(android.R.color.holo_blue_bright,
android.R.color.holo_green_light,
android.R.color.holo_orange_light,
android.R.color.holo_red_light);
mainListView = (ListView) findViewById(R.id.main_listview);
mainListView.setOnItemClickListener(this);
mJSONAdapter = new JSONMainAdapter(this, getLayoutInflater());
mainListView.setAdapter(mJSONAdapter);
getGameDetails();
}
したがって、私の getGame Details が最初の呼び出しになりますが、その後さらに 4 ~ 6 回行う必要があります。
私のgetGameDetails:
private void getGames() {
swipeLayout.setRefreshing(true);
MyRestClient.get("games", null, new JsonHttpResponseHandler() {
@Override
public void onSuccess(JSONObject jsonObject) {
swipeLayout.setRefreshing(false);
Toast.makeText(getApplicationContext(), "Success!", Toast.LENGTH_LONG).show();
mJSONAdapter.updateData(jsonObject.optJSONArray("games"));
}
@Override
public void onFailure(int statusCode, Throwable throwable, JSONObject error) {
swipeLayout.setRefreshing(false);
Toast.makeText(getApplicationContext(), "Error: " + statusCode + " " + throwable.getMessage(), Toast.LENGTH_LONG).show();
Log.e("ERROR", statusCode + " " + throwable.getMessage());
}
});
}
したがって、私の考えは、必要な呼び出しごとに関数を追加し、次のように onCreate で次々に呼び出すことです。
getGameDetails();
getGameCallA();
getGameCallB();
getGameCallC();
もう 1 つの方法は、AsyncHttpClient の onSuccess メソッドで次の関数を呼び出すことですが、それは正しくないようです。
質問: ここで使用する必要がある AsyncHttpClient を使用した「バッチ リクエスト」はありますか?
ご意見ありがとうございます。