2011-04-01 114 views
1

按鈕按下時,我想,以顯示與信息登錄成功進度條,當我在登錄按鈕點擊我怎麼能在android系統做任何機構可以引導我,如果可能的話請給出代碼顯示與信息進度條的Android

+0

請解釋更多。點擊登錄按鈕時你的應用程序會做什麼。 ?..太短解釋 – 2011-04-01 09:45:57

+0

當我點擊登錄按鈕時,如果登錄成功,它會移動到下一頁。當它在移動過程中時,我想顯示登錄成功消息的進度條 – user671005 2011-04-01 09:49:14

+0

驗證用戶身份試圖登錄?是否有任何數據庫或網絡相關的操作?..只想在進度條中顯示登錄成功消息。爲什麼不敬酒或任何其他通知。 ? – 2011-04-01 09:50:20

回答

1

看到你需要做的是:當用戶點擊按鈕時,開始後臺服務(在這裏認證用戶)。進行後臺處理時必須顯示進度條。取決於結果顯示適當的消息,無論用戶是否被授權或不在例如吐司或其他活動中說。

爲了完成冗長的操作,您必須使用Thread或AsyncTask。這同時處理用戶界面以及後臺進程。

你需要做的是:在onClick事件中調用AsyncTask。在這裏你必須創建一個LoginOperation對象,然後簡單地調用它的LoginOperation.execute()方法。

爲了顯示結果,你敬酒這樣的消息:的AsyncTask的)

Toast.makeText(context,"Your Message",Toast.LENGTH_LONG).show(); 

Ofcourse,你必須將它添加在onPostExecute(。

private class LoginOperation extends AsyncTask<String, Void, String> { 

private ProgressDialog Dialog = new ProgressDialog(ClassName.this); 

@Override 
protected String doInBackground(String... params) { 
// perform long running operation operation 
//Here you have to do your network operations.. 
return null; 
} 


/* (non-Javadoc) 
* @see android.os.AsyncTask#onPostExecute(java.lang.Object) 
*/ 

@Override 
protected void onPostExecute(String result) { 
// execution of result of Long time consuming operation 

try 
    { 
      if(Dialog.isShowing()) 
      { 
       Dialog.dismiss(); 
      } 
      // do your Display and data setting operation here 
    } 
    catch(Exception e) 
    { 

    } 
//Here depending upon your validation, display appropriate message. 
If(correct_user) 
call another activity 
else 
display error toast message in the same activity 


} 

/* (non-Javadoc) 
* @see android.os.AsyncTask#onPreExecute() 
*/ 

@Override 

protected void onPreExecute() { 
    Dialog.setMessage("Authenticating....."); 
    Dialog.show(); 

// Things to be done before execution of long running operation. For example showing ProgessDialog 

} 

/* (non-Javadoc) 
* @see android.os.AsyncTask#onProgressUpdate(Progress[]) 
*/ 

@Override 
protected void onProgressUpdate(Void... values) { 
// Things to be done while execution of long running operation is in progress. For example updating ProgessDialog 
} 

}

+0

查看關於此的完整討論:http://stackoverflow.com/questions/4776236/how-to-implement-a-progressdialog-while-activity-requests-a-soapobject-from-a-web – 2011-04-01 10:25:45