2017-11-04 4 views
2

Ich möchte einen Multichoice-Dialog mit einem Listener in der Reihenfolge, in der ich die Optionen drückte. Wie kann ich das machen?Multichoice-Dialog mit Klick-Reihenfolge

String[] multiChoiceItems = 
getResources().getStringArray(R.array.dialog_choice_array_monday); 
boolean[] checkedItems = {false, false, false, false, false, false, false}; 
new AlertDialog.Builder(NewScheduleActivity.this) 

.setTitle(getString(R.string.main_dialog_multi_choice_monday)) 
.setMultiChoiceItems(multiChoiceItems, checkedItems, null) 
.setPositiveButton(getString(R.string.dialog_ok), null) 
.setNegativeButton(getString(R.string.dialog_cancel), null) 
.show();  
     } 
+0

Versuchen Sie benutzerdefinierten Dialog? Siehe: https://stackoverflow.com/questions/13341560/how-to-create-a-custom-dialog-box-in-android – nhoxbypass

+0

@nhoxbypass Das Problem ist, auf die Reihenfolge der gedrückten Option zu hören .. Ich don weiß nicht, wie man das realisiert – d0me

+0

Bitte lassen Sie mich wissen, wenn meine Lösung unten ist, was Sie suchen –

Antwort

0

Dies soll helfen:

.setMultiChoiceItems(multiChoiceItems, null, new DialogInterface.OnMultiChoiceClickListener() { 

}); 

, wenn Sie neue DialogeInterface.OnMul Eingabe beginnen werden ...... wird es die abstrakte Methode autoimplement:

onClick(DialogInterface dialog, int which, boolean isChecked) 

Ich denke, Sie können null anstelle Ihres checkedItems-Arrays verwenden, je nachdem, ob Sie die Daten aus diesem Array verwenden müssen oder nicht.

Was Sie tun müssen:

ein neues Array für die Sequenz erstellen und im onClick Zuhörer, nur den Code hinzufügen, innerhalb des ausgewählten Element in der sequenceArray hinzuzufügen! Am Ende enthält dieses Array die Daten in der Reihenfolge, in der sie ausgewählt wurde.

String[] multiChoiceItems = getResources().getStringArray(R.array.dialog_choice_array_monday); 
    ArrayList<String> sequenceArray = new ArrayList<>(); 
new AlertDialog.Builder(NewScheduleActivity.this) 

         .setTitle(getString(R.string.main_dialog_multi_choice_monday)) 
         .setMultiChoiceItems(multiChoiceItems, null, new DialogInterface.OnMultiChoiceClickListener() { 
          @Override 
          public void onClick(DialogInterface dialog, int which, boolean isChecked) { 
           sequenceArray.add(multiChoiceItems[which]) 
          } 
         } 
         .setPositiveButton(getString(R.string.dialog_ok), null) 
         .setNegativeButton(getString(R.string.dialog_cancel), null) 
         .show(); 
      } 

Android Webseite: https://developer.android.com/reference/android/content/DialogInterface.html

+0

abgeschlossen Ich bin wirklich neu hinzufügen dieses Zeug ... Könnten Sie mir bitte den Code für eine gute Sequenz schreibenArray? – d0me

+0

Ich habe meine Post bearbeitet, überprüfen Sie den Code –

+0

Vielen Dank! Gibt es eine Möglichkeit, die Checkboxen der Multichoice zu modifizieren? – d0me