Android:"构造函数AlertDialog.Builder(new View.OnClickListener(){})未定义"错误

bes*_*ash 4 android

我找到了构建一些输入框的代码,它们没问题,但在这段代码中它只是不起作用:

View.OnClickListener handleOnClick(final TextView textview) {
    return new View.OnClickListener() {
        public void onClick(View v) {

            if(editOn==1){
                textview.setText("neuer Text");

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

                alert.setTitle("Hinzufügen");
                alert.setMessage("Name des neuen Eintrags");

                final EditText input = new EditText(this);
                alert.setView(input);

                alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                  String entryInput = input.getText().toString();
                  loadUp(entryInput,"0","1.1.2000");
                  }
                });

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


            }
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

它说,"构造函数AlertDialog.Builder(new View.OnClickListener(){})未定义"每当我尝试插入一些东西"... new AlertDialog.Builder(this);, 那么我没有任何错误.我知道,"这个"必须引用一些东西.当我在menuitem上使用这个代码片段时,它运行良好,但我想在我激活编辑按钮时使用它(这就是if(editOn == 1)的意思)然后点击一个textview.我觉得这有点令人困惑,但我希望那里有人能理解我需要的东西并且可以帮助我!

Dev*_*rim 17

您正在尝试将clickListener实例发送到AlertDialog.Builder构造函数.

AlertDialog.Builder alert = new AlertDialog.Builder(this);
Run Code Online (Sandbox Code Playgroud)

尝试发送您的活动的实例.例如,如果您的活动名称是您的MainActivity:

AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);
Run Code Online (Sandbox Code Playgroud)

要么:

AlertDialog.Builder alert = new AlertDialog.Builder(v.getContext());
Run Code Online (Sandbox Code Playgroud)

编辑:显示AlertDialog使用其show()方法:

AlertDialog dialog = alert.create();
dialog.show();
Run Code Online (Sandbox Code Playgroud)

查看文档