Android 对话框未在onitemclick侦听器中关闭()

Android 对话框未在onitemclick侦听器中关闭(),android,Android,AlertDialog.Builder dialog=新建AlertDialog.Builder(此) 是否在setOnItemClickListener()下没有(或没有显示)dismise()方法 特别是这是我的代码 AlertDialog.Builder dialog = new AlertDialog.Builder(getApplicationContext()); dialog.setTitle("TITLE"); dialog.setView(view); dialog.show(

AlertDialog.Builder dialog=新建AlertDialog.Builder(此) 是否在setOnItemClickListener()下没有(或没有显示)dismise()方法

特别是这是我的代码

AlertDialog.Builder dialog = new AlertDialog.Builder(getApplicationContext());
dialog.setTitle("TITLE");
dialog.setView(view);
dialog.show();

listView.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> adapter, View view, int pos,
        long id) {
    dialog.dismiss() // dismiss is not there.


    }
});

AlertDialog.Builder dialog=新建AlertDialog.Builder(getApplicationContext());
对话框。设置标题(“标题”);
对话框.setView(视图);
dialog.show();
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共菜单单击(适配器视图适配器、视图视图、int pos、,
长id){
dialog.disclose()//不存在disclose。
}
});

谢谢。

在这些处理程序中通常都会这样做:

  • 创建对话框,并在类/活动级别使用成员变量
  • 在类/活动中创建私有方法以关闭对话框
  • 在处理程序中调用此私有方法

您正在创建的不是对话框,而是DialogBuilder。您需要按如下方式创建它:

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(true);
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setTitle("...");
builder.setMessage("message");
builder.setNegativeButton("OK", null);
AlertDialog dlg = builder.create();

这是这些处理程序中始终要执行的操作:

  • 创建对话框,并在类/活动级别使用成员变量
  • 在类/活动中创建私有方法以关闭对话框
  • 在处理程序中调用此私有方法

您正在创建的不是对话框,而是DialogBuilder。您需要按如下方式创建它:

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(true);
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setTitle("...");
builder.setMessage("message");
builder.setNegativeButton("OK", null);
AlertDialog dlg = builder.create();

您的对话框变量超出了侦听器的作用域。如果要执行此操作,需要将dialog设置为实例变量。另外,当单击listview中的某个项目时,如何确定对话框是否显示?正如我所说的dialog.show(),我看到对话框已显示,listview包含了我想要包含的所有内容。通过这种方式,我确信对话框是可见的,并且对话框没有超出范围,因为当我调用对话框时。它展示了它的一系列方法,但由于某些原因,它并不存在。按listview上的项目关闭对话框的方法是什么。(感谢您的帮助)您的对话框变量超出了侦听器的作用域。如果要执行此操作,需要将dialog设置为实例变量。另外,当单击listview中的某个项目时,如何确定对话框是否显示?正如我所说的dialog.show(),我看到对话框已显示,listview包含了我想要包含的所有内容。通过这种方式,我确信对话框是可见的,并且对话框没有超出范围,因为当我调用对话框时。它展示了它的一系列方法,但由于某些原因,它并不存在。按listview上的项目关闭对话框的方法是什么。(感谢您的帮助)AlertDialog.Builder dialog=新建AlertDialog.Builder(此)没有Disclose()。该方法是DialogInterface的一部分。如何将创建的对话框与DialogInterface连接。使用解雇。我试过你的方法,但还是没有。哇,是的。谢谢你,你的代码做了很小的改动,我宣布AlertDialog dlg为最终版本。再次感谢。顺便说一句,“ali”和“ostad”这两个词我都很熟悉。AlertDialog.Builder dialog=new AlertDialog.Builder(这个)没有dismise()。该方法是DialogInterface的一部分。如何将创建的对话框与DialogInterface连接。使用解雇。我试过你的方法,但还是没有。哇,是的。谢谢你,你的代码做了很小的改动,我宣布AlertDialog dlg为最终版本。再次感谢。顺便说一下,“阿里”和“奥斯塔德”这两个词我都很熟悉。