2013-10-19 125 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(); 
    

你只需更改佈局,寫你需要一個,其餘的都是一樣的。希望能幫助到你。