Уволить AlertDialog без кнопок - PullRequest
1 голос
/ 05 марта 2012

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

Ответы [ 4 ]

3 голосов
/ 05 марта 2012

что я могу подумать об этой проблеме, так это установить свой собственный вид для этого диалога, а затем вы можете установить onClickListener для этого представления, чтобы вы могли иметь дело с событием click.Ниже мой код:

@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 голос
/ 11 октября 2014

Это закрывает диалоговое окно при касании пользователя вне диалогового окна, поэтому никакие кнопки не нужны:

dialog.setCanceledOnTouchOutside(true);
0 голосов
/ 26 февраля 2017

Если вы хотите, чтобы ваш пользовательский диалог можно было отключить, нажав на диалоговое окно и за пределами диалогового окна, используйте следующий код:

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();
   }
0 голосов
/ 05 марта 2012

вы должны создать собственный диалог для него.см. ссылку ниже, это поможет вам

http://iserveandroid.blogspot.in/2010/11/how-to-dismiss-custom-dialog-based-on.html

вы также закрыли диалог через определенное время.см. ссылку ниже

http://xjaphx.wordpress.com/2011/07/13/auto-close-dialog-after-a-specific-time/

...