私はAndroid 3.1以上のアプリケーションを開発しています。スレッド内にGUIスレッドでないダイアログを表示
Spring Frameworkを使用してRESTリクエストを作成するスレッドを追加しました。私はcatchブロック内のダイアログを表示したい
public class FormsListActivity extends ListActivity
{
private List<Form> forms;
private ProgressDialog progressDialog;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
progressDialog = ProgressDialog.show(this, "Please Wait.", "Loading forms...");
getUpdates.start();
}
private Thread getUpdates = new Thread()
{
public void run()
{
try
{
forms = FormSpringController.LoadAll();
progressDialog.dismiss();
}
catch (Exception e)
{
e.printStackTrace();
//display = e.getLocalizedMessage();
}
runOnUiThread(new Runnable()
{
public void run()
{
setListAdapter(new FormAdapter(FormsListActivity.this, R.layout.form_list_item, forms));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
}
});
}
};
}
:これは私のコードです
catch (Exception e)
{
e.printStackTrace();
//display = e.getLocalizedMessage();
}
私はそれがあるdisplay
変数のエラーを設定し、runOnUiThread(new Runnable()
内でそれを確認すると考えられてきました。表示に値がある場合、ダイアログが表示されます。
あなたはどう思いますか?より良いアプローチはありますか?
UIを更新したり、通常のスレッドからAlertDialogを表示することはできません。あなたはこれを行うにはUIのthreaを使用する必要があります – Ravi1187342