Android подсказывает ввод пользователя с помощью диалога - PullRequest
12 голосов
/ 19 октября 2010

Я хотел бы предложить пользователю дать мне ввод в моем приложении для 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: невозможно добавить окно - нулевой токен не для приложения

есть ли проблема в моем коде, похоже, что в диалоге передается пустой аргумент, но я не могу выяснить, в чем проблема.

Ответы [ 2 ]

9 голосов
/ 19 октября 2010

Когда я запускал ваш код в новом проекте, он работал нормально.Поэтому, вероятно, «this», которое вы используете

  • , не является действием
  • не является видимым действием, т. Е. Может быть родительское действие.Если это потомок какого-либо действия, используйте getParent () вместо «this».
  • равно нулю

Надеюсь, это поможет.

3 голосов
/ 28 июня 2011

Я написал вспомогательный класс, который облегчает создание диалогового окна с несколькими строками кода.

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();

См. Полный код => Диалог подсказок для Android

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...