我有一个类,我有一个地图对象。我将此地图对象发送到自定义对话框。之后,我想从此对话框中调用另一个对话框,但第二个对话框未显示。我不知道我在哪里做错了。
活动:
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;
}
答案 0 :(得分:0)
此问题的解决方案是使用类
android.os.AsyncTask<Params, Progress, Result>
描述在die JavaDoc:
中给出“AsyncTask可以正确,轻松地使用UI线程。该类允许执行后台操作并在UI线程上发布结果,而无需操纵线程和/或处理程序。”
通过使用方法onPreExecute()
,您可以在UI线程上操作View。
完成此方法后,将调用doInBackground()
,您可以在此处开始后台操作。此方法不适用于UI线程,因此它不会阻止您的应用程序。
调用此onPostExecute()
后,您可以使用计算结果。
我的问题是在进行背景操作时正确显示进度指示器。这可以通过使用onProgressUpdate()
方法来完成,该方法在UI线程中工作,同时进行后台计算。