警报对话框编辑文本不返回任何值

时间:2017-05-18 11:08:53

标签: java android

我有一个带有xml布局的警告对话框,它有一个编辑文本。当我写一些文字并按SAVE时, editText to String返回null。这是我的代码 -

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity());

        LayoutInflater inflater = getActivity().getLayoutInflater();
        dialogView = inflater.inflate(R.layout.dialog_layout, null);
        alertDialogBuilder.setView(dialogView);

        alertDialogBuilder.setView(R.layout.dialog_layout);

        // set dialog message
        alertDialogBuilder
                .setCancelable(false)
                .setPositiveButton("SAVE",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {
                                EditText userInput = (EditText) dialogView.findViewById(R.id.editText);
                                dbUtils.insertCSVFileName(userInput.getText().toString());
                                Log.d("hi","vaqlue of edittext" + userInput.getText().toString());  //gives me null

                            }
                        })

我的编辑文字出现在dialog_layout.xml中。为什么这是空的?

2 个答案:

答案 0 :(得分:0)

您的问题是您将布局设置了两次:

alertDialogBuilder.setView(dialogView);
alertDialogBuilder.setView(R.layout.dialog_layout);

只需使用上述方法之一,删除一个。

答案 1 :(得分:0)

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity());

    LayoutInflater inflater = getActivity().getLayoutInflater();
    dialogView = inflater.inflate(R.layout.dialog_layout, null);
    alertDialogBuilder.setView(dialogView);

    // set dialog message
    alertDialogBuilder
            .setCancelable(false)
            .setPositiveButton("SAVE",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            EditText userInput = (EditText) dialogView.findViewById(R.id.editText);
                            dbUtils.insertCSVFileName(userInput.getText().toString());
                            Log.d("hi","vaqlue of edittext" + userInput.getText().toString());  //gives me null

                        }
                    })

只使用两者中的一种方法,你使用了两种方法:

alertDialogBuilder.setView(dialogView);     //good practice
alertDialogBuilder.setView(R.layout.dialog_layout);