我想使用弹出对话框获取用户输入。我能够显示带有EditText的对话框,用户可以输入输入。但是当我试图获得这个值时,我只得到一个空值。
这是一个简单的代码。我可能在这里错过了一些非常基本的东西。不知道是什么!
private void getUserInput(String prompt) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(prompt);
final EditText inputBox = new EditText(this);
builder.setView(inputBox);
builder.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
String str = "";
Log.d(DEBUG_TAG, "OK button clicked");
if (inputBox.getText() != null) { //PROBLEM: why is inputBox.getText null??
str = "null";
} else {
str = inputBox.getText().toString();
}
Log.d(DEBUG_TAG, "input text >>>" + str);
dialog.dismiss();
}
});
builder.show();
}
答案 0 :(得分:2)
你有什么地方
if (inputBox.getText() != null)
你将str设置为null,但检查inputBox.getText()是否为null;那!=
== null
不应该是inputBox.getText().equals("")
吗? (虽然,实际上,您应该检查{{1}}。)