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

时间:2013-11-12 19:13:56

标签: 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) {
                  }
                });


            }
        }
    };
}

它说,“构造函数AlertDialog.Builder(new View.OnClickListener(){})未定义” 每当我尝试在“... new AlertDialog.Builder( this );”中插入一些东西时,我就没有任何错误。我知道,“这个”必须引用某些东西。当我使用这个时在menuitem上的代码片段,它运作良好,但我希望每当我激活我的编辑按钮时使用它(这就是if(editOn == 1)意味着)并点击文本视图。这是一种令人困惑的我认为,但我希望有人在那里了解我的需要,并可能帮助我!

2 个答案:

答案 0 :(得分:17)

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

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

尝试发送您的活动的实例。例如,如果您的活动名称为MainActivity,则为:

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

或:

AlertDialog.Builder alert = new AlertDialog.Builder(v.getContext());

修改:要显示AlertDialog使用其show()方法:

AlertDialog dialog = alert.create();
dialog.show();

See docs

答案 1 :(得分:0)

这个问题很老但也许有人会觉得有用! :)

AlertDialog.Builder builder = new AlertDialog.Builder(((MainActivity ) getActivity()));
        builder.setMessage( "No connectivity").setCancelable(false)
            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog,int id) {
                }
            });
        AlertDialog alert = builder.create();
        alert.show();