2013-10-19 81 views
1

我有一个警报对话框,并希望有三个选项供用户选择其中之一,以及用户可以打开或关闭的其他选项。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

看到这个答案http://stackoverflow.com/questions/3608018/toggling-check-boxes-in-multichoice-alertdialog-in-android – Shijil

+0

这真的很有帮助,谢谢。 – user2274215

回答

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(); 
    

你只需更改布局,写你需要一个,其余的都是一样的。希望能帮助到你。