如何在单个AlertDialog上添加多个按钮

Mad*_*ddy 35 android

我有一个butoon,点击这个按钮我想在一个AlertDialog上打开多个按钮,如下所示:在此输入图像描述

给我一个帮助:

我正在使用这个....添加多个按钮alertDialog.setButton(删除,"删除",新的OnClickListener(){

            public void onClick(View v) {
                // TODO Auto-generated method stub

            }
        });
Run Code Online (Sandbox Code Playgroud)

但我发现...,将setButton()更改为setButton2()......就像..... wt xcan我为此做的....

Ode*_*ner 115

没有xml的简单解决方案:

AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Title");
builder.setItems(new CharSequence[]
        {"button 1", "button 2", "button 3", "button 4"},
        new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                // The 'which' argument contains the index position
                // of the selected item
                switch (which) {
                    case 0:
                        Toast.makeText(context, "clicked 1", Toast.LENGTH_SHORT).show();
                        break;
                    case 1:
                        Toast.makeText(context, "clicked 2", Toast.LENGTH_SHORT).show();
                        break;
                    case 2:
                        Toast.makeText(context, "clicked 3", Toast.LENGTH_SHORT).show();
                        break;
                    case 3:
                        Toast.makeText(context, "clicked 4", Toast.LENGTH_SHORT).show();
                        break;
                }
            }
        });
builder.create().show();
Run Code Online (Sandbox Code Playgroud)

  • @teapeng:builder.setMessage()会覆盖按钮,所以我猜你只剩下builder.setTitle() (13认同)
  • 非常好的例子,比其他人更容易理解!谢谢! (6认同)
  • 但是如何为对话框内容添加消息呢? (2认同)

Car*_*nal 19

我会用我自己的自定义视图(my_alert_dialog.xml)来扩展AlertDialog.

AlertDialog.Builder alert = new AlertDialog.Builder(this);
LayoutInflater inflater = getLayoutInflater();
//inflate view for alertdialog since we are using multiple views inside a viewgroup (root = Layout top-level) (linear, relative, framelayout etc..)
View view = inflater.inflate(R.layout.my_alert_dialog, (ViewGroup) findViewById(R.id.root)); 

Button button1 = (Button) view.findViewById(R.id.button1); // etc.. for button2,3,4.
alert.setView(view);
alert.show();
Run Code Online (Sandbox Code Playgroud)