我有一个Dialog,在那里我可以选择一些东西,在我的例子中用于披萨。 我想选择/选择多个项目。但每次我运行应用程序时,我都可以选择多个,但它只显示一个。 这是我的代码,我忽略了一次但却找不到我的错误。 我希望你能帮助我。 在此先感谢;)
private void pizzaBelagDialog() {
// Variablen
final ArrayList<Integer> arrayBelag = new ArrayList<Integer>();
dialogBuilder = new AlertDialog.Builder(this);
final String[] strBelaege = { "Hühnchen", "Pepperoni", "Pilze",
"Zwiebeln", "Speck", "Oliven", "Ananas", "Pommes", "Soße",
"Meeresfrüchte" };
// Process
strBelag = "\nBelag:\n";
dialogBuilder.setTitle("Wähle deinen Belag aus");
dialogBuilder.setMultiChoiceItems(strBelaege, null,
new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which,
boolean isChecked) {
if (isChecked) {
arrayBelag.add(which);
} else if (arrayBelag.contains(which)) {
arrayBelag.remove(Integer.valueOf(which));
}
}
});
dialogBuilder.setPositiveButton("Ok",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
for (int intLoop = 0; intLoop < arrayBelag.size(); intLoop++) {
strBelag = strBelaege[(Integer) arrayBelag
.get(intLoop)] + ", ";
}
Toast.makeText(getApplicationContext(),
"Belag wurde ausgewählt.", Toast.LENGTH_SHORT)
.show();
Display();
}
});
dialogBuilder.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(),
"Belag wurde nicht ausgewählt.",
Toast.LENGTH_SHORT).show();
}
});
// Output
AlertDialog dialogPizzaBelag = dialogBuilder.create();
dialogPizzaBelag.show();
}
Syntac
答案 0 :(得分:1)
在每个循环中,您都会覆盖变量strBelag。你应该用这个:
strBelag += your code + ", ".
这样您就可以保留在上一个循环中添加的值,而不会更改它。