gpt4 book ai didi

android - 如何在加载 UI 项目时显示 ProgressDialog?

转载 作者:行者123 更新时间:2023-11-29 15:26:37 25 4
gpt4 key购买 nike

我有一个 ListView ,我正在将项目动态加载到其中。问题是当我激活该 Activity 时。它花费的时间太长,所以我必须在加载 UI 时显示一些进度对话框。我真的不知道该怎么做,因为 doInBackground(如果使用异步任务)不允许开发人员弄乱 UI。我该怎么办?

这是我的 UI 加载代码:

LeagueTableRow leagueTableRow_data[] = new LeagueTableRow[]
{
new LeagueTableRow(1,R.drawable.logo,"aaa",12,9,3,14),
new LeagueTableRow(3,R.drawable.logo,"aaa",12,9,3,14),
new LeagueTableRow(4,R.drawable.logo,"aaa",12,9,3,14),
new LeagueTableRow(5,R.drawable.logo,"aaa",12,9,3,14),
new LeagueTableRow(2,R.drawable.logo,"aaa",12,9,3,14)
};

LeagueTableRowAdapter adapter = new LeagueTableRowAdapter(context,
R.layout.leaguetablecontent, leagueTableRow_data);


listViewLeagueTable = (ListView)findViewById(R.id.listViewLeagueTable);

View header = (View)getLayoutInflater().inflate(R.layout.leaguetableheader, null);
listViewLeagueTable.addHeaderView(header);

listViewLeagueTable.setAdapter(adapter);

最佳答案

这可以在 AsyncTask 的帮助下实现(智能后台线程)和 ProgressDialog

当 AsyncTask 启动时,将引发一个具有不确定状态的 ProgressDialog,一旦任务完成,对话框将被关闭。

示例代码

此示例中适配器的作用并不重要,重要的是要了解您需要使用 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();
}
}

关于android - 如何在加载 UI 项目时显示 ProgressDialog?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11929193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com