我无法按顺序将事情发生在android中。
例如,当用户点击Button
时,我希望首先显示ProgressDialog
,然后解除,然后TextView
更改。我是否需要为每一种方法制定一种方法,或者是我可以实现的方法来实现这一目标。
感谢任何帮助过的人。
答案 0 :(得分:2)
您可以使用AsyncTask来完成此任务。覆盖doInBackground
并使用publishProgress
和onProgressUpdate
更新进度条。然后,在onPostExecute
中,更新TextView。
示例(没有publishProgress
和onProgressUpdate
):
mTextView = (TextView) findViewById(R.id.text1);
new AsyncTask<Void, Integer, Void>() {
private ProgressDialog mProgressDialog;
@Override
protected Void doInBackground(Void... arg0) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
mTextView.setText("All Done");
mProgressDialog.dismiss();
}
@Override
protected void onPreExecute() {
mProgressDialog = ProgressDialog.show(Welcome.this, "Progress title", "Progress message", true);
}
}.execute((Void) null);
答案 1 :(得分:0)
您可以使用ProgressDialog
创建OnDismissListener并在ProgressDialog#setOnDismissListener(DialogInterface.OnDismissListener)
上设置它 - 请参阅ProgressDialog#setOnDismissListener