Android 对话变得没有反应
我在Android应用程序中使用了ProgressDialog。 我有一个主窗体的登录名、密码和Loginbtn,当我登录时,我移动到下一个屏幕,该登录名基于internet和webdomain,意味着在登录时,它向具有php文件的在线服务器发送请求,返回true或false,然后移动到下一个屏幕。我想使用ProcessDialog,除非它从服务器获得true或false,如果它获得false,控制盘应该停止处理,并显示无效用户名或密码的消息,如果它获得true,在获得true后,它应该结束进程对话框并移到下一个屏幕,此时ProcessDialog正在工作,但当我们单击,我只是启动对话框工作,然后自动移动到下一个屏幕,但如果我们按下后退按钮,它仍然显示进程对话框旋转。我只想以正确的方式使用processDialog。 我的代码是Android 对话变得没有反应,android,android-layout,progressdialog,Android,Android Layout,Progressdialog,我在Android应用程序中使用了ProgressDialog。 我有一个主窗体的登录名、密码和Loginbtn,当我登录时,我移动到下一个屏幕,该登录名基于internet和webdomain,意味着在登录时,它向具有php文件的在线服务器发送请求,返回true或false,然后移动到下一个屏幕。我想使用ProcessDialog,除非它从服务器获得true或false,如果它获得false,控制盘应该停止处理,并显示无效用户名或密码的消息,如果它获得true,在获得true后,它应该结束进程
//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
}
附图
//写这行“newsometask(0).execute();”在登录tn.onCLick中
/**用于在获取数据之前实现进度条的内部类**/
私有类SomeTask扩展了AsyncTask
{
private ProgressDialog=新建ProgressDialog(yourActivityClass.this);
@凌驾
受保护的void onPreExecute()
{
setMessage(“加载…”);
Dialog.show();
}
@凌驾
受保护的整数doInBackground(Void…params)
{
//做某事的任务
//从php服务器获取数据如果为true,则返回
返回0;
}
@凌驾
受保护的void onPostExecute(整数结果)
{
如果(结果==0)
{
//做一些真实的事情
意向意向=新意向(DomainDownManagerActivity.this,MainPanelActivity.class);
星触觉(意向);
}
//完成进度条后
Dialog.dismise();
}
}
谁给我负面评价?如果你没有答案,那就不要给否定评分好!!!
// 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();
}
}