我已经创建了一个对话框,它用信息.But更新了xml,在弹出.How的对话框后面显示了进度对话框,我用膨胀的xml显示了对话框顶部的进度对话框。
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dialog();
}
public class loadasync extends AsyncTask<Void, Void, JSONObject> {
ProgressDialog progressDialog ;
@Override
protected JSONObject doInBackground(Void... params) {
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
runOnUiThread(new Runnable() {
@Override
public void run() {
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setMessage("loading");
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.show();
}
});
}
@Override
protected void onPostExecute(JSONObject result) {
runOnUiThread(new Runnable() {
@Override
public void run() {
progressDialog.dismiss();
}
});
}
}
public void dialog() {
dialog = new Dialog(MainActivity.this);
dialog.setContentView(R.layout.dialogxml);
loadasync loadasyncdata=new loadasync();
loadasyncdata.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
dialog.show();
}发布于 2013-12-19 14:39:03
我看不到您在代码中使用的是setProgressStyle()。这就是:
progessDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);例如。
因此,在您的代码中,请尝试以下操作:
public void run() {
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setMessage("loading");
progressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.show();
}发布于 2013-12-19 15:33:45
需要考虑的是: OnPostExecute和onPreExecute都在UI线程上运行,所以您可以删除runOnUIThread内容,只需执行以下操作
protected void onPreExecute() {
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setMessage("loading");
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.show();
}和分别在onPostExecute中
protected void onPostExecute(JSONObject result) {
progressDialog.dismiss();
}也许应该是个评论但是名声..。
https://stackoverflow.com/questions/20684055
复制相似问题