还有一些其他应用程序可以执行此操作,例如 Twitter、Facebook,甚至是 Android Market 等本机应用程序。当您想要显示从互联网检索到的项目列表时,这看起来像是向用户显示有关正在进行的操作的一些通知的标准方法。这是一个白色背景屏幕,带有动画旋转轮和“正在加载...”文本。
有人知道该怎么做吗?
我已经能够用这段代码做类似的事情,但我还不太喜欢它。仍在进行中:
<ListView android:id="@+id/post_list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView android:id="@android:id/loading"
android:background="@color/white"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center" android:text="Loading..." />
这是在以下人员的帮助下完成的异步任务 http://developer.android.com/intl/de/reference/android/os/AsyncTask.html(智能后台线程)和进度对话框 http://developer.android.com/intl/de/reference/android/app/ProgressDialog.html
当 AsyncTask 启动时,我们会弹出一个处于不确定状态的进度对话框,一旦任务完成,我们就会关闭该对话框。
示例代码
适配器在此示例中执行的操作并不重要,更重要的是要了解您需要使用 AsyncTask 来显示进度对话框。
private class PrepareAdapter1 extends AsyncTask<Void,Void,ContactsListCursorAdapter > {
ProgressDialog dialog;
@Override
protected void onPreExecute() {
dialog = new ProgressDialog(viewContacts.this);
dialog.setMessage(getString(R.string.please_wait_while_loading));
dialog.setIndeterminate(true);
dialog.setCancelable(false);
dialog.show();
}
/* (non-Javadoc)
* @see android.os.AsyncTask#doInBackground(Params[])
*/
@Override
protected ContactsListCursorAdapter doInBackground(Void... params) {
cur1 = objItem.getContacts();
startManagingCursor(cur1);
adapter1 = new ContactsListCursorAdapter (viewContacts.this,
R.layout.contact_for_listitem, cur1, new String[] {}, new int[] {});
return adapter1;
}
protected void onPostExecute(ContactsListCursorAdapter result) {
list.setAdapter(result);
dialog.dismiss();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)