我在Android应用程序中使用了ProgressDialog。 我在主窗体中有登录名,密码和Loginbtn,当我登录时,我移动到下一个屏幕,登录是基于互联网和webdomain,意味着登录时它向具有php文件的在线服务器发送请求,返回true或者假,然后移动到下一个屏幕。我想使用ProcessDialog,除非它从服务器获得true或false,如果它变为false,则轮应该停止处理,它应该显示无效用户名或密码的消息,如果它变为true,则在获得true后它应该结束进程对话框并移动到下一个屏幕,现在ProcessDialog工作,但是当我们点击时,我只是启动对话框工作,然后自动意图移动到下一个屏幕,但如果我们按下后退按钮,它仍然显示进程对话框旋转。我只是想以正确的方式使用processDialog。 我的代码是
//start
progressDialog = new ProgressDialog(DomainDownManagerActivity.this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setMessage("Loading...");
progressDialog.show();
progressDialog.setProgress(100);
> if (v==true){
//v has true
Intent intent = new Intent(DomainDownManagerActivity.this,MainPanelActivity.class);
startActivity(intent);
}
else{
//set label of invalid user or pass
}
附图片
答案 0 :(得分:1)
// write this line `new SomeTask(0).execute();` in your loginBtn.onCLick
/** Inner class for implementing progress bar before fetching data **/
private class SomeTask extends AsyncTask<Void, Void, Integer>
{
private ProgressDialog Dialog = new ProgressDialog(yourActivityClass.this);
@Override
protected void onPreExecute()
{
Dialog.setMessage("loading...");
Dialog.show();
}
@Override
protected Integer doInBackground(Void... params)
{
//Task for doing something
// get data from php server if true then return
return 0;
}
@Override
protected void onPostExecute(Integer result)
{
if(result==0)
{
//do some thing if true
Intent intent = new Intent(DomainDownManagerActivity.this,MainPanelActivity.class);
startActivity(intent);
}
// after completed finished the progressbar
Dialog.dismiss();
}
}