Activity
「A1」とListActivity
「A2」があります
「A1」でユーザーから入力を受け取り、ユーザーからActivity
の入力に応じて、処理して結果リストを生成します。生成されたリストは、私のListActivity
「A2」に表示されます。
現在、入力の処理と結果リストの生成には少し時間がかかりすぎます。そのため、今回は読み込みダイアログ、画像の読み込み、メッセージの読み込みを表示して、アプリが何もしないで立ち往生しているとユーザーが思わないようにします。
今までに試したこと:はい、試しましたAsyncTask
!(私は多くの人がそれを提案しようとしていることを知っています)それで今私はすべての処理をで行っていますAsyncTask
。を表示し、ProgressDialog
でonPreExecute
処理を実行doInBackground
し、ダイアログを閉じていonPostExecute
ます。
ListActivity
ただし、ダイアログは「A2」が始まる直前に表示されます。それまではActivity
「A1」が立ち往生しているようです!
「A1」の「送信」ボタンをクリックしたときにダイアログが表示され、「A2」が表示されるActivity
まで表示され続けるようにします。ListActivity
詳細が必要な場合はお知らせください。ありがとう。
-編集-
onClickメソッドのコード:
ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.setMessage("Processing... Please Wait...");
progressDialog.show();
// Execute task
MyTask myTask = new MyTask(progressDialog);
AsyncTask<String, Void, ArrayList<HashMap<String, String>>> result =
myTask.execute(userChoice);
Intent intent = new Intent(this, ListActivityA2.class);
// Put results in intent
intent.putExtra("results", resultsList);
// Start result activity
startActivity(intent);
AsyncTask
public class MyTask extends
AsyncTask<String, Void, ArrayList<HashMap<String, String>>> {
ArrayList<HashMap<String, String>> resultsList =
new ArrayList<HashMap<String, String>>();
ProgressDialog progressDialog;
public MyTask(ProgressDialog progressDialog) {
this.progressDialog = progressDialog;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected ArrayList<HashMap<String, String>> doInBackground(
String... params) {
return doProcess(params[0]);
}
@Override
protected void onPostExecute(ArrayList<HashMap<String, String>> result) {
progressDialog.dismiss();
super.onPostExecute(result);
}
private ArrayList<HashMap<String, String>> doProcess(String choice) {
// do processing here
return arrayList;
}
}