1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > android加载刷新进度条 android – 在Activity加载时显示进度条

android加载刷新进度条 android – 在Activity加载时显示进度条

时间:2019-06-25 16:00:03

相关推荐

android加载刷新进度条 android – 在Activity加载时显示进度条

我有一个ListActivity,它基于列表选择启动另一个Activity。第二个Activity需要从互联网上加载一些相当数据的数据,因此在用户点击一个项目和Activity显示之间有一个明显的延迟。

这是一个问题,因为我目前无法向用户指出他们的点击正在被处理(即使只是更改所选列表项的颜色也是足够的,但我找不到一个很好的方法)。理想情况下,我可以在第二个Activity被加载时显示一个不确定的ProgressDialog。

我已经尝试了几种不同的方法,但没有什么似乎根据需要工作。

我尝试过以下操作:

>在第一个Activity中的AsyncTask中检索可序列化的数据(不是全部,而是部分),并将其作为额外的数据传递给第二个。这不是很好,因为我在onPreExecute()中创建的ProgressDialog没有立即显示(由于某些原因似乎在doInBackground()中执行的处理延迟)。

这是代码:

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();

}

>在第二个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();

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。