2010-10-19 99 views
10

我想提示用户在我的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不是一个应用程序

是在我的代码中有任何问题,似乎在对话框上传递了一个空参数,但我找不到问题所在。

+1

'字符串值= input.getText()的toString();' – Fred 2015-09-30 22:20:54

回答

8

当我在新项目中运行代码时,它工作正常。所以,可能是“这个”您正在使用

  • 不活动
  • 考虑不即活动有可能是一个父活动。如果它是某个活动的孩子,请使用getParent()而不是“this”。
  • 是空

希望这有助于。

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