android提示用户使用对话框输入

时间:2010-10-19 12:14:45

标签: android

我想提示用户使用对话框在我的Android应用程序中输入。这是我发现的:

AlertDialog.Builder alert = new AlertDialog.Builder(this);

alert.setTitle("Title");
alert.setMessage("Message");

// Set an EditText view to get user input 
final EditText input = new EditText(this);
alert.setView(input);

alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText();
 // Do something with value!
 }
});

alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
 public void onClick(DialogInterface dialog, int whichButton) {
     // Canceled.
}
});

 alert.show();

但是这个 给了我:

android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌null不适用于应用程序

我的代码是否有任何问题,似乎在对话框中传递了null参数,但我无法找出问题所在。

2 个答案:

答案 0 :(得分:9)

当我在新项目中运行代码时,它运行正常。所以你正在使用的“这个”

  • 不是活动
  • 不是视野中的活动,即可能有父活动。如果它是某些活动的孩子,请使用getParent()而不是“this”。
  • 是null

希望这有帮助。

答案 1 :(得分:3)

我编写了一个帮助器类,只需几行代码即可轻松创建一个提示对话框。

PromptDialog dlg = new PromptDialog(MainActivity.this, R.string.title, R.string.enter_comment) {
 @Override
 public boolean onOkClicked(String input) {
  // do something
  return true; // true = close dialog
 }
};
dlg.show();

See full code => Prompt Dialog for Android