2012-11-27 61 views
0

我有當用戶單擊後退按鈕上的裝置,它被調用的警告對話框,但此警報太短,並且用戶不能讀什麼裏面或做任何事情與它..警報對話框週期短

AlertDialog alertDialog = new AlertDialog.Builder(birthDate.this).create(); 
        // Setting Dialog Title 
        alertDialog.setTitle("Alert Dialog"); 
        // Setting Dialog Message 
        alertDialog.setMessage("Welcome to AndroidHive.info"); 
        // Setting OK Button 
        alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
        // Write your code here to execute after dialog closed 
        Toast.makeText(getApplicationContext(), "You clicked on OK", Toast.LENGTH_LONG).show(); 
        } 

我想使這個警告對話框不再

+0

你是指敬酒期間還是alertDialog?因爲alertdialog不會在這裏忽略你的代碼(你沒有調用dismiss()方法),並且爲了舉杯,你可以指定持續時間的參數爲10000毫秒(10秒),例如 – Houcine

+0

看看這個http://stackoverflow.com/questions/2220560/can-an-android-toast-be-l-long-than-toast-length-long – user1840039

+0

你能解釋你正在談論的警報對話或吐司的天氣嗎? – Sameer

回答

1

我想你在呼喚alertdialog和finish()都是在同一時間的週期。嘗試完成在警告對話框中的活性

alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
       // Write your code here to execute after dialog closed 
       Toast.makeText(getApplicationContext(), "You clicked on OK", Toast.LENGTH_LONG).show(); 
       finish();// here calling finish if user click ok button. 
       } 
+1

這不是相關的答案。它怎麼可能一次做兩件事......它不可能。 – Sameer

+0

這兩個在時間意味着調用警報對話功能,並在它下面調用完成()將導致顯示警報對話框,並立即完成()將調用,使活動繼續.. –

+0

這將導致窗口泄漏異常和應用程序將崩潰 – Sameer

0

我假設現在你在這裏問這是越來越上警告對話框點擊按鈕顯示Toast。你可以通過增加Toast的出現時間來做到這一點。只需將Toast.LENGTH_LONG替換爲所需的任意持續時間(以毫秒爲單位) 。

Ex。

Toast.makeText(getApplicationContext(), "You clicked on OK", 5000).show(); 
1

我的答案是指你的觀點我想使這個警告對話框的週期長

long time=System.currentTimeMillis(); 
Show Dialog 

然後再次駁回對話框long time2=System.currentTimeMillis();所以time2-time1是你所需要的時間

更新

您是說AlertDialog關閉設備上的後按按鈕,然後使AlertDialog取消可以爲false。

0

請嘗試以下代碼。這會給你足夠的時間來顯示你的警報對話框。我給了3000秒作爲參數3秒,你可以根據你的要求改變。

@Override 
public void onBackPressed() { 
    AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); 
    AlertDialog alertDialog = dialogBuilder.create(); 
    alertDialog.setTitle("Title of your message!"); 
    alertDialog.setMessage("Your message to user"); 
    alertDialog.show(); 

    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      MainActivity.super.onBackPressed(); 
     } 
    }, 3000); 

}