代码之家  ›  专栏  ›  技术社区  ›  maxsap

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

  •  12
  • maxsap  · 技术社区  · 15 年前

    我想提示用户使用对话框在我的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不适用于应用程序

    我的代码有什么问题吗?似乎对话框上传递了一个空参数,但我找不到问题所在。

    2 回复  |  直到 11 年前
        1
  •  9
  •   Prabhat    15 年前

    当我在一个新项目中运行你的代码时,它运行得很好。所以可能是你用的这个

    • 不是活动
    • 不是视图中的活动,即可能有父活动。如果它是某个活动的子级,请使用getParent()而不是“this”。
    • 为空

        2
  •  4
  •   appsthatmatter    14 年前

    我已经编写了一个helper类,使得只需几行代码就可以轻松地创建提示对话框。

    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