2013-03-04 167 views
0

在我的android應用程序中,我使用一個警報對話框向用戶顯示一些信息,如果用戶單擊對話框,它應該完成活動。我的代碼是Android警報對話框問題

offer.this.runOnUiThread(new Runnable() { 
@Override 
public void run() { 
    // TODO Auto-generated method stub 
    AlertDialog alert=new AlertDialog.Builder(offer.this).create(); 
    alert.setTitle("SVSugar Mill"); 
    alert.setMessage("Offer Number is "+offer_no.getText().toString()); 
    alert.setButton("Click to Dismiss", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     // TODO Auto-generated method stub 
     finish(); 
     //return; 
     } 
    }); 
    alert.show(); 
    } 
}); 

它不等待用戶響應完成()。相反,即使用戶沒有點擊警報對話框,它也會被調用。我知道這是異步的,但我需要這樣做(OfferNO應顯示給用戶,當用戶單擊警報對話框時,它應該完成活動)。有沒有辦法做到這一點?

有人幫我

編輯:

活動將無需等待用戶完成點擊警告對話框

+1

所以這裏有什麼問題? – 2013-03-04 11:19:14

+0

它不會等待用戶回覆完成() – 2013-03-04 11:19:48

+0

你的問題不清楚哥們。 – 2013-03-04 11:22:39

回答

0
public void ShowDialog(final Context context) { 
     new AlertDialog.Builder(context) 
       .setTitle(android.R.string.dialog_alert_title) 
       .setMessage(UContext.getContext().getString(R.string.network_error)) 
       .setPositiveButton(android.R.string.ok, 
         new DialogInterface.OnClickListener() { 
          @Override 
          public void onClick(DialogInterface dialog, 
            int which) { 
           this.finish(); 
          } 
         }).show(); 
    } 
+0

它沒有解決我的問題,它不會等待用戶點擊 – 2013-03-04 11:26:40

+0

請從您的代碼中刪除runonUIThread並簡單地將其刪除。我猜你的活動正在關閉之前執行此代碼。 – 2013-03-04 11:28:11

+0

我運行一些其他代碼,我使用進度對話框。這就是爲什麼我使用runOnUIThread – 2013-03-04 11:28:57

0

的問題是,您創建了兩個AlertDialog實例在這裏:

alertDialog=builder.create(); 
builder.create().show(); 

然後你在第二個時候調用了dismiss() e實際上沒有顯示的對話框。這應該解決問題:

alertDialog=builder.show();