2012-03-05 4 views
1

У меня есть AlertDialog без кнопок. Как отменить диалог при нажатии на него?Dismiss AlertDialog без кнопок

+1

Lokk здесь http://iserveandroid.blogspot.in/2010/11/how-to-dismiss-custom-dialog-based-on.html –

+0

Почему бы вам не поставить таймер и d, а затем через определенный промежуток времени удалите диалог. Какая необходимость держать диалог открытым? –

+0

Предоставляете ли вы свое диалоговое окно с каким-то настраиваемым представлением, или что, можете ли вы добавить код, чтобы мы могли точно решить проблему. – luciferche

ответ

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(); 
    } 
Смежные вопросы