2013-11-28 213 views
1

我想要的是一個沒有任何按鈕的對話框,當我點擊對話框體外時關閉對話框。可能嗎?關閉對話框點擊外部

public class MainActivity extends Activity{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     openCredit(); 
    } 

    //THIS IS ONE CUSTOM DIALOG 
    public void openCredit(){ 
     AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 
     LayoutInflater inflater = MainActivity.this.getLayoutInflater(); 
     builder.setView(inflater.inflate(R.layout.activity_splash, null)); 
     builder.show(); 
    } 
} 

編輯:我有搜索,發現兩個功能setCanceledOnTouchOutside()和setCancelable()。第一個不使用AlertDialog的方法,給出「AlertDialog.Builder類型的方法setCanceledOnTouchOutside(boolean)未定義」的錯誤。而第二個只是按下後退按鈕。

因此,我改變我的代碼,如下所示,它現在正在工作。謝謝。

public void openCredit(){ 
     AlertDialog builder = new AlertDialog.Builder(this).create(); 
     LayoutInflater inflater = MainActivity.this.getLayoutInflater(); 
     builder.setView(inflater.inflate(R.layout.activity_splash, null)); 
     builder.setCancelable(true); 
     builder.show(); 
     builder.setCanceledOnTouchOutside(true); 
    } 
+1

你學到了什麼,當你用Google搜索和搜索這裏呢? – Simon

+0

可能的重複[如何通過點擊對話框外的對話框來關閉對話框?](http://stackoverflow.com/questions/8384067/how-to-dismiss-the-dialog-with-click-on-outside-對我的歉意 – Simon

+0

..我試着用錯誤的關鍵詞搜索,並錯過了相應的鏈接.... – abdfahim

回答

0

您是否嘗試過這個..

+0

根據參考,這個功能是關閉按下後退按鈕,而不是點擊外部。另一個功能setCanceledOnTouchOutside不適用於AlertDialog。 http://developer.android.com/reference/android/app/Dialog.html#setCancelable%28boolean%29 – abdfahim

+0

@AbdullahFahim它必須工作我檢查它,我用它。對於'AlertDialog','setCancelable(true)'和'setCanceledOnTouchOutside(true);'對於'Dialog'。 – Hariharan

0

加入這一行做這個