2014-01-15 99 views
4

Im使用DialogFragment顯示一個多選項目的對話框,它顯示對話框但沒有項目,沒有複選框可供選擇。setMultiChoiceItems()不顯示項目

這是我如何調用該對話框:

botAddMedicacion.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      DialogFragment fragAddMedic = new AnadirMedicacionFragment(); 
      fragAddMedic.show(getFragmentManager(), "addMedicacion"); 
     } 
    }); 

這是AnadirMedicacionFragment代碼:

final CharSequence[] items={".NET","J2EE","PHP"}; 

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState){ 

    medicSelec = new ArrayList(); 

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    builder.setMessage(R.string.anadir_medicacion); 


    // elementos de la lista 
    builder.setMultiChoiceItems(items, null, new DialogInterface.OnMultiChoiceClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which, boolean isChecked) { 

      if (isChecked) { 
       medicSelec.add(which); 
      } else if (medicSelec.contains(which)) { 
       medicSelec.remove(Integer.valueOf(which)); 
      } 

     } 
    }); 

    // boton ok 
    builder.setPositiveButton(R.string.anadir, new DialogInterface.OnClickListener(){ 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 

     } 
    }); 

    // boton cancelar 
    builder.setNegativeButton(R.string.cancelar, new DialogInterface.OnClickListener(){ 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 

     } 
    }); 

    return builder.create(); 
} 

的項目列表中builder.setMultiChoiceItems傳遞(項目,空[...]

dialog fragment multi choose

它似乎有效,但沒有複選框或列表。

+0

如果你點擊其中一個項目,會出現什麼情況? – PearsonArtPhoto

+0

我想你的意思是正面和負面的按鈕,如果我點擊其中一個按鈕,它會消失對話框。 – alxsimo

+0

我不是指按鈕,我的意思是文字本身。 「Andair medicacion」。 – PearsonArtPhoto

回答

7

問題是你有一個setMessagesetMultiChoiceListener。你只能擁有其中一個。試試這個:

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
builder.setTitle(R.string.anadir_medicacion); 
+1

我將setMessage更改爲setTitle並且它工作,出現了問題。感謝PearsonArtPhoto! – alxsimo