android加载刷新进度条,android – 在Activity加载时显示进度条
我有一個(gè)ListActivity,它基于列表選擇啟動(dòng)另一個(gè)Activity。第二個(gè)Activity需要從互聯(lián)網(wǎng)上加載一些相當(dāng)數(shù)據(jù)的數(shù)據(jù),因此在用戶點(diǎn)擊一個(gè)項(xiàng)目和Activity顯示之間有一個(gè)明顯的延遲。
這是一個(gè)問題,因?yàn)槲夷壳盁o法向用戶指出他們的點(diǎn)擊正在被處理(即使只是更改所選列表項(xiàng)的顏色也是足夠的,但我找不到一個(gè)很好的方法)。理想情況下,我可以在第二個(gè)Activity被加載時(shí)顯示一個(gè)不確定的ProgressDialog。
我已經(jīng)嘗試了幾種不同的方法,但沒有什么似乎根據(jù)需要工作。
我嘗試過以下操作:
>在第一個(gè)Activity中的AsyncTask中檢索可序列化的數(shù)據(jù)(不是全部,而是部分),并將其作為額外的數(shù)據(jù)傳遞給第二個(gè)。這不是很好,因?yàn)槲以趏nPreExecute()中創(chuàng)建的ProgressDialog沒有立即顯示(由于某些原因似乎在doInBackground()中執(zhí)行的處理延遲)。
這是代碼:
AsyncTask read = new AsyncTask() {
Dialog progress;
@Override
protected void onPreExecute() {
progress = ProgressDialog.show(SearchActivity.this,
"Loading data", "Please wait...");
super.onPreExecute();
}
@Override
protected String doInBackground(String... params) {
DatasetReader reader = new DatasetReader();
reader.setFundID(params[0]);
reader.addDatsets(FundProfile.datasets);
reader.populate();
return reader.toString();
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
progress.dismiss();
}
};
read.execute(selectedItem.getUniqueID());
try {
action = new Intent(SearchActivity.this, FundProfile.class);
action.putExtra("data", read.get());
} catch(Exception ex) {
ex.printStackTrace();
}
>在第二個(gè)Activity的onCreate()方法(這根本不起作用):
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setProgressBarVisibility(true);
這是第二種方法的onCreate()方法:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setTitleColor(Color.WHITE);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setProgressBarVisibility(true);
try {
setContentView(R.layout.fund_profile);
// init some data
setProgressBarVisibility(false);
} catch(Exception ex) {
FundProfile.this.finish();
}
}
總結(jié)
以上是生活随笔為你收集整理的android加载刷新进度条,android – 在Activity加载时显示进度条的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果ios鸿蒙,苹果iOS界面一直都很美
- 下一篇: 华为鸿蒙os再见了安卓,再见了安卓!华为