dialog.dismiss()不会对alertDialog中的项目点击进行操作

时间:2014-05-27 15:01:15

标签: android alertdialog

为什么在点击AlertDialog中的项目后,dialog.dismiss()不起作用? 我也尝试过alert.dismiss但是我得到的错误对话框无法解决。我该如何解决?

这是对话框

protected void myMarkersDialog() {
     final String name = prefs.getString("Name", "");
     String nameTwoo = prefs.getString("NameTwoo", "");
        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
        LayoutInflater inflater = getLayoutInflater();
        View convertView = (View) inflater.inflate(R.layout.my_markers_listview, null);
        builder.setView(convertView);
        builder.setTitle("List");
        lv = (ListView) convertView.findViewById(R.id.listView1);
         if (prefs.contains("Name") || prefs.contains("NameTwoo"))
          {

                String[] values = new String[] {name,nameTwoo};
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,values);
                lv.setAdapter(adapter);

          }

         lv.setOnItemClickListener(new OnItemClickListener() {
               @Override
               public void onItemClick(AdapterView<?> parent, View view, int position, long arg) {
                   String selected;
                   selected = lv.getItemAtPosition(position).toString();

                   if(selected.equalsIgnoreCase(name))
                   {
                       mapView.getMapViewPosition().setCenter(myMarkerGeopoint);
                      dialog.dismiss();
                   }

               }
            });

        builder.setNeutralButton(getResources().getString(R.string.no_dialog), new DialogInterface.OnClickListener() {

           @Override
           public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss(); // I get error!
           }

        });


        AlertDialog alert = builder.create();

        alert.show(); 
    }

1 个答案:

答案 0 :(得分:0)

在构建之前声明AlertDialog并使用它来解散。

    AlertDialog alert;

    protected void myMarkersDialog() {
         final String name = prefs.getString("Name", "");
         String nameTwoo = prefs.getString("NameTwoo", "");
            final AlertDialog.Builder builder = new AlertDialog.Builder(this);
            LayoutInflater inflater = getLayoutInflater();
            View convertView = (View) inflater.inflate(R.layout.my_markers_listview, null);
            builder.setView(convertView);

            ...

            builder.setNeutralButton(getResources().getString(R.string.no_dialog), new DialogInterface.OnClickListener() {

               @Override
               public void onClick(DialogInterface dialog, int which) {
                    alert.dismiss();
               }

            });

            alert = builder.create();

            alert.show();
    }