AlertDialog包含单选和多选项

时间:2013-10-19 08:20:39

标签: android alertdialog android-alertdialog

我有一个警告对话框,希望有三个选项,用户可以选择其中一个选项,以及用户可以打开或关闭的其他选项。

这可能吗?当我尝试添加单个和多个选项时,第二个会覆盖第一个。

AlertDialog.Builder builder = new AlertDialog.Builder(ContactListActivity.this);
builder.setTitle(R.string.sort_dialog_title);

builder.setSingleChoiceItems(R.array.sort_options_array, -1, null);
builder.setMultiChoiceItems(R.array.sort_reverse_option, null, null);

1 个答案:

答案 0 :(得分:1)

您可以在AlertDialog中保留所需的任何内容。方法很简单。我举了一个例子,你可以得到这个想法并制作你的想法。

  • 在AlertDialog中写下您需要的布局。你只需要用xml编写它。

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/root"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    
        <EditText
            android:id="@+id/email"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:hint="Buyer&apos;s email address..."
            android:inputType="textEmailAddress" />
    </RelativeLayout>
    
  • 比如说,上面的文件名为alert.xml。然后对alert.xml进行充气并将其设置为警报对话框的视图

    AlertDialog.Builder builder = new Builder(this); 
    builder.setTitle("Title"); 
    builder.setMessage("message"); 
    LayoutInflater inflater =(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View view = inflater.inflate(R.layout.alert, null); 
    final EditText email = (EditText)view.findViewById(R.id.email); 
    builder.setView(view);
    
  • 现在设置正面和负面按钮并设置动作。

    builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
    
    
                @Override
                public void onClick(DialogInterface dialog, int arg1){
                 // Do what you need to do
                }
            });
    
    builder.setNegativeButton("Cancel",
            new DialogInterface.OnClickListener() {
    
                @Override
                public void onClick(DialogInterface dialog, int arg1){
                    dialog.dismiss();
                }
            });
    
  • 显示提醒

    AlertDialog dialog = builder.create();
    dialog.show();
    

您必须更改布局并编写所需的布局,其余部分相同。希望能帮助到你。