【发布时间】:2011-04-26 18:22:44
【问题描述】:
好吧,我正在制作一个应用程序,在该应用程序中,我使用 ListActivity 来显示包含我从 Internet 下载的图像以及 TextViews 和评分栏的视图。 我添加了一个 AsyncTask 来管理它,并将我的 setListAdapter 放在 onPostExecute() 部分;但是,我还希望在设置完成时显示一个进度条(或 progressdialog )。
该栏确实在我的模拟器中出现了一段时间,但是当我在设备上尝试我的应用程序时没有出现,甚至在模拟器中,当 setListAdapter 工作时,该栏会冻结,但是......只是我没有想出了如何在我的 ArrayAdapter 上添加 publishProgress,因为它是另一个类。 啊,是的,我为 ListActivity 设置了布局,这就是我放置进度条的位置,但我猜是设备使 doInBackground 部分非常快,因此布局甚至不显示。
这是我目前得到的:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
extras = getIntent().getExtras();
platinumCinema = false;
setContentView(R.layout.simple_list_item_1);
Log.i(TAG,"Control B");
MoviesAsyncTask movieTask = new MoviesAsyncTask();
movieTask.execute();
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title_billboard);
}
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgress = (ProgressBar)findViewById(R.id.progressbar_Horizontal);
mProgress.setVisibility(View.VISIBLE);
Log.i(TAG, "PreExecute");
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
if(result.equals("ok"))
Log.i(TAG,"Ended succesfully");
//ProgressDialog mDialog = ProgressDialog.show(BillboardMovieList.this, "","Loading. Please wait...", true);
publishProgress(75);
if(searchMethod.equals("byCinema")){
setListAdapter(new ArrayAdapterSchemaCinemas(BillboardMovieList.this, listMovies,listPosters, listRating, listTimes));
}else
...
【问题讨论】:
标签: android progress-bar android-asynctask listactivity progressdialog