显示我使用ProgressDialogBox
的后台流程。
我的代码是
add_button.setOnClickListener(new OnClickListener() {
public void onClick(View viewParam) {
progressDialog = ProgressDialog.show(AddTicketActivity.this, "", "Loading...");
new Thread() {
public void run() {
try{
sleep(10000);
} catch (Exception e) {
Log.e("tag", e.getMessage());
}
progressDialog.dismiss();
}
}.start();
工作正常。但问题是10000毫秒的progess显示,因为我希望它显示,直到我的数据被提取/添加。我的意思是它应该取决于获取/增加时间。
我想这样做
public void onClick(View viewParam) {
progressDialog = ProgressDialog.show(AddTicketActivity.this, "", "Loading...");
Fetching data code here
progressDialog.dismiss();
}
但它有效,没有显示任何进度条。
我如何使用它。
感谢。
答案 0 :(得分:2)
这种进度条的方式是异步的。这可能对你有帮助。
// class for displaying dialog box
class DialogTask extends AsyncTask<Void, Void, String> {
protected String doInBackground(Void... urls) {
return null;
}
@Override
protected void onPostExecute(String result) {
method to execute
super.onPostExecute(result);
}
}
答案 1 :(得分:0)
我建议您将AsyncTask与ProgressDialog或ProgressBar一起使用。
progressbar.setVisibility(View.VISIBLE);
progressbar.setVisibility(View.INVISIBLE);
答案 2 :(得分:0)
你的代码很好:
public void onClick(View viewParam) {
progressDialog = ProgressDialog.show(AddTicketActivity.this, "", "Loading...");
// Fetching data code here
// ...
// Data Fetched
progressDialog.dismiss();
}
只要你在相同的线程中获取代码(这可能会导致ANR。考虑使用AsyncTask
),这应该可行。
编辑:请注意,如果要在单独的线程中获取数据,根据您的逻辑,您将显示进度对话框,然后立即关闭它。