以下代码在按钮的onClick方法中运行并显示一个对话框。我可以输入文本然后按ok,但我的String文件名(如Log.d中所示)始终为null。我不明白为什么。
如何在对话框中输入要保存的文本?
我的代码在一个活动(没有片段)中运行,而String filename和EditText输入都是类成员变量。
// Get filename from user
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setTitle("Enter filename");
// EditText to get user input
this.input = new EditText(this);
dialog.setView(input);
dialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
filename = input.getText().toString();
}
});
dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// cancelled
}
});
dialog.show();
Log.d(LOG_TAG, "Filename is : " + filename);
我的代码基于android prompt user's input using a dialog,但我的问题不同。
答案 0 :(得分:0)
您尝试在实际输入数据之前记录字符串。 尝试将日志放在正面的onClick中,我想你会看到它确实存在。
像这样:// Get filename from user
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setTitle("Enter filename");
// EditText to get user input
this.input = new EditText(this);
dialog.setView(input);
dialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
filename = input.getText().toString();
Log.d(LOG_TAG, "Filename is : " + filename);
}
});
dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// cancelled
}
});
dialog.show();