我有一个带有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
中。为什么这是空的?
答案 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);