如何从另一个对话框调用对话框

时间:2012-10-11 10:56:07

标签: android

我有一个类,我有一个地图对象。我将此地图对象发送到自定义对话框。之后,我想从此对话框中调用另一个对话框,但第二个对话框未显示。我不知道我在哪里做错了。

活动:

dlgi = new MyCommunityServicesDialog(AppCentral.this, myValues, mapView);
dlgi.listDialog().show();

自定义对话框:

Community_List_Dialog dialog = new Community_List_Dialog(context, getAllCommunityNames(selectedOpt).get(0), getAllCommunityNames(selectedOpt).get(1), mapView)
dialog.showDialog();

注意:此方法(getAllCommunityNames(selectedOpt).get(0)/(1))会返回String[]

自定义对话第二:

public Dialog showDialog()
{

    Log.i("listDialog calling...", "calling...");
    final Dialog community_dialog = new Dialog(context);
    community_dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
    community_dialog.setContentView(R.layout.community_list);
    ListView community_list = (ListView)community_dialog.findViewById(R.id.community_list);

    adapter = new Community_List_Adapter(context,names);
    community_list.setAdapter(adapter);

    return community_dialog;

}

1 个答案:

答案 0 :(得分:0)

此问题的解决方案是使用类

android.os.AsyncTask<Params, Progress, Result>

描述在die JavaDoc:

中给出

“AsyncTask可以正确,轻松地使用UI线程。该类允许执行后台操作并在UI线程上发布结果,而无需操纵线程和/或处理程序。”

通过使用方法onPreExecute(),您可以在UI线程上操作View。

完成此方法后,将调用doInBackground(),您可以在此处开始后台操作。此方法不适用于UI线程,因此它不会阻止您的应用程序。

调用此onPostExecute()后,您可以使用计算结果。

我的问题是在进行背景操作时正确显示进度指示器。这可以通过使用onProgressUpdate()方法来完成,该方法在UI线程中工作,同时进行后台计算。