2012-03-05 126 views
1

我有一個沒有按鈕的AlertDialog。點擊時如何解除對話框?關閉沒有按鈕的AlertDialog

+1

Lokk http://iserveandroid.blogspot.in/2010/11/how-to-dismiss-custom-dialog-based-on.html – 2012-03-05 11:46:41

+0

你爲什麼不把一個計時器一個然後在一段時間後刪除對話框。將需要保持對話框打開? – 2012-03-05 11:48:32

+0

你是否提供了一些自定義視圖或什麼,你可以請添加一些代碼,所以我們可以確切是什麼問題。 – luciferche 2012-03-05 11:51:01

回答

3

什麼,我可以考慮一下這個問題,是你自己的看法設置爲對話框,然後你可以設置一個onClickListener到該視圖,這樣你就可以處理單擊事件。 下面是我的代碼:

@Override 
protected Dialog onCreateDialog(int id, Bundle args) { 
    AlertDialog.Builder builder=new Builder(this); 
    builder.setTitle("title"); 

    LayoutInflater inflater=(LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View view=inflater.inflate(R.layout.firstview, null);//inflate your own view 
    view.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      YourActivity.this.dismissDialog(dialog_ID);//dismiss the dialog 
     } 
    }); 

    builder.setView(view);//set your custom view to your dialog 

    return builder.create(); 
} 
1

這將關閉對用戶的對話框中的對話外觸,所以沒有按鈕需要:

dialog.setCanceledOnTouchOutside(true); 
0

如果您希望自定義對話框是dismissable通過單擊對話框上和對話框使用下面的代碼外:這裏

private void showDialog() { 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     LayoutInflater inflater = (LayoutInflater)getSystemService          (Context.LAYOUT_INFLATER_SERVICE); 
     View v = inflater.inflate(R.layout.your_custom_dialogLayout, null); 
     builder.setView(v); 
     builder.setCancelable(true);//Dialog dismissed by click outside 
     final AlertDialog dialog = builder.create(); 
     v.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       dialog.dismiss(); //Dialog dismissed by click on dialogs content 
      } 
     }); 
     dialog.show(); 
    }