2011-12-23 77 views
-1

我在Android应用程序中使用了ProgressDialog。 我有一个主要形式的登录名,密码和Loginbtn,当我登录时,我移动到下一个屏幕,登录是在互联网和webdomain的基础上,意味着登录时发送请求到在线服务器有PHP文件,返回true或false,然后它移动到下一个屏幕。我想使用ProcessDialog,除非它从服务器获得true或false,并且如果它变成false,那么轮子应该停止处理,并且应该显示消息:无效的用户名或密码,如果它变为true,则在变为true之后它应该结束处理对话框并移到下一个屏幕,现在ProcessDialog正在工作,但是当我们点击时,我只是开始对话框工作,然后自动移动到下一个屏幕,但是如果我们按回按钮,它仍然会显示进程对话框旋转。我只是想以正确的方式使用processDialog。 我的代码是ProgressDialog无响应

//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 
    } 

图片连接 enter image description here

+0

谁在排行榜我负面的?如果你没有答案,那么不要评价负面的好! – 2011-12-23 12:50:14

+0

http://eagle.phys.utk.edu/guidry/android/progressBarExample.html – 2011-12-23 13:25:23

回答

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(); 
     } 

    }