对话框并在TextView中显示它

时间:2014-04-23 22:27:28

标签: android dialog textview

我有一个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

1 个答案:

答案 0 :(得分:1)

在每个循环中,您都会覆盖变量strBelag。你应该用这个:  strBelag += your code + ", ".这样您就可以保留在上一个循环中添加的值,而不会更改它。