第二次打开对话框时不会调用editText.setText

时间:2014-03-05 16:32:20

标签: android android-edittext android-alertdialog settext

我有几个对话框,用户可以来回走动。其中一个是带有editText的自定义对话框。我希望描述editText始终为空。我用了

     description.setText("");

当我将描述文本编辑为例如" abcd"时,返回DIALOG_THREE,然后返回DIALOG_FOUR。 description.setText("&#34);不叫。更改后的文字" abcd"保留在编辑文本上。专家可以建议我从一个对话框移动到另一个对话框时如何将其设置为空白。

    @Override
@Deprecated
protected Dialog onCreateDialog(int id) {
    Dialog dialog = null;

    AlertDialog.Builder builder = new AlertDialog.Builder(this,
            android.R.style.Theme_DeviceDefault_Light_DarkActionBar);

    switch (id) {       

    case DIALOG_THREE:

        builder.setCancelable(false);
        builder.setTitle("Incident Catagory");
        builder.setSingleChoiceItems(incidentCatagory, -1,
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub

                    }
                });
        builder.setPositiveButton("next",
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                        showDialog(DIALOG_FOUR);


                    }

                });
        builder.setNegativeButton("Back",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                        showDialog(DIALOG_TWO);

                    }
                });

        return builder.create();

    case DIALOG_FOUR:

        LayoutInflater inflaterFour = this.getLayoutInflater();
        final View inflatorFour = inflaterFour.inflate(
                R.layout.dialog_incidents_four_description, null);

        builder.setView(inflatorFour);
        description = (EditText) inflatorFour.findViewById(R.id.etDescription);
        description.setText("");
        builder.setPositiveButton("Next", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                showDialog(DIALOG_FIVE);
                String desc = description.getText().toString();
            }
        });
        builder.setNegativeButton("Back", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                showDialog(DIALOG_THREE);

            }
        });
        return builder.create();

非常感谢。

2 个答案:

答案 0 :(得分:0)

description.setText("");Next按钮Back方法中添加onClick()以清空编辑文字。因此,您的DIALOG_FOUR将如下所示......

case DIALOG_FOUR:

    LayoutInflater inflaterFour = this.getLayoutInflater();
    final View inflatorFour = inflaterFour.inflate(
            R.layout.dialog_incidents_four_description, null);

    builder.setView(inflatorFour);
    description = (EditText) inflatorFour.findViewById(R.id.etDescription);
    description.setText("");
    builder.setPositiveButton("Next", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            showDialog(DIALOG_FIVE);
            String desc = description.getText().toString();

            description.setText("");
        }
    });
    builder.setNegativeButton("Back", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {

            description.setText("");

            showDialog(DIALOG_THREE);

        }
    });
    return builder.create();

答案 1 :(得分:0)

添加description.setText(“”);在DIALOG_THREE的下一个按钮的onClick()内。所以基本上你的DIALOG_THREE看起来就像这样。

您只需在description.setText("");下一个按钮中设置DIALOG_THREE此代码即可。

case DIALOG_THREE:

        builder.setCancelable(false);
        builder.setTitle("Incident Catagory");
        builder.setSingleChoiceItems(incidentCatagory, -1,
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub

                    }
                });
        builder.setPositiveButton("next",
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                        showDialog(DIALOG_FOUR);
                        description.setText("");        //  Add this line here
                    }

                });
        builder.setNegativeButton("Back",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                        showDialog(DIALOG_TWO);

                    }
                });

        return builder.create();
相关问题