私のダイアログが自分のasyncTaskに表示されないという状況があります。 以下のコードは、私のasyncTaskアンドロイドスタジオのダイアログの表示と非表示
private class AsyncCallListWS extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
Log.i(TAG, "--------------------------------------------------");
Log.i(TAG, "pending ws: onPreExecute");
showLoadingDialog();
}
@Override
protected Void doInBackground(Void... params) {
Log.i(TAG, "pending ws: doInBackground");
//listDataParent = new ArrayList<Tn_Parent>();
listPending();
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
Log.i(TAG, "Call pending ws: onPostExecute");
dismissLoadingDialog();
//Log.i(TAG, "I am not up there "+status.toString());
if(getContext()!=null) {
//adapter = new Tn_ListViewAdapter(getActivity(), newList, selectAll);
//listView.setAdapter(adapter);
lvAdapter = new Tn_ListViewAdapter(getActivity(), lvList, selectAll);
listView.setAdapter(lvAdapter);
// .............. below is not needed .....................
//listAdapter = new Tn_ExpandableAdapter(listDataParent,getContext(), selectAll);
//expListView.setAdapter(listAdapter);
}
}
}
そして、以下は私のダイアログボックスコードです。ダイアログは、他のクラスでうまく機能します。
public void showLoadingDialog() {
if (bar == null) {
bar = new ProgressDialog(getActivity());
bar.setMessage(getString(R.string.loading_message));
//bar.setCanceledOnTouchOutside(getRetainInstance());
bar.setCanceledOnTouchOutside(false);
}
bar.show();
}
public void dismissLoadingDialog() {
if (bar != null && bar.isShowing()) {
bar.dismiss();
}
}
本当に何が問題なのか知りたいです。 onLoadingDialog()をonCreateView()に配置すると、ダイアログが表示されますが、onCreateView()内に配置するとダイアログが閉じないという問題があります。助けてください。
bar =新しいProgressDialog(getActivity());ここではコンテキストのオブジェクトを取得して関数に渡し、非同期で呼び出すときはコンテキストを渡します –
質問するのではなく、隠す/表示するプログレスバーのメソッドを検索してください。あなたは簡単にコードスニペットを得るでしょう –