2012-01-22 9 views
5

Aquí está mi código de diálogo, hay una ListView en un diálogo, yo quiero cerrar este cuadro de diálogo cuando hago clic en ListView:¿Cómo cierro AlertDialog cuando hago clic en elemento ListView

public void createSearchDialog(final String[] Memo){ 
     LayoutInflater factory = LayoutInflater.from(this); 
     View searchView = factory.inflate(R.layout.seach_dialog, null); 

      lv = (ListView) searchView.findViewById(R.id.search_list); 
     lv.setAdapter(new MyPerformanceArrayAdapter(this, Memo, memo_PW)); 
     lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> arg0, View view, int position,long arg3) { 
       // TODO Auto-generated method stub 

         /// close dialog 
      } 
     }); 


     searchBuilder = new AlertDialog.Builder(this); 
     searchBuilder.setTitle("Search") 
       .setView(searchView) 
       .setNegativeButton("Back", new DialogInterface.OnClickListener() {    
       public void onClick(DialogInterface arg0, int arg1) { 
        // TODO Auto-generated method stub 

       } 
      }) 
       .show();  

    } 

traté de poner este código en onItemClick()

searchBuilder.create().dismiss(); 

    searchBuilder.create().cancel(); 

Pero no está funcionando.

+0

un auto de AlertDialog se cierra con el clic de un botón POR DEFECTO. – JoxTraex

Respuesta

15

Cambie .show() por dialog = searchBuilder.show(); luego ponga dialog.dismiss() en onItemClick().

+0

trabajando perfecto –

+1

dónde inicializar el diálogo y cuál es el tipo y cómo usarlo ... amablemente dar la respuesta adecuada con el código ... – Nepster

+1

Diálogo AlertDialog; sería global, entonces funcionará –

1

Para descartar el diálogo .dismiss() funcionará. Por favor, compruebe que está llamando esto en el lugar correcto. si desea cerrar el cuadro de diálogo cuando se realiza una selección desde su ListView, debe cerrar el cuadro de diálogo en el agente de escucha de su ListView.

+0

pongo searchBuilder.create(). Dismiss(); en onItemClick pero todavía no funciona – Intathep

+0

¿puedes probar con searchbuilder.dismiss() – amandroid

+0

No puedo llamar a searchbuilder.dismiss(),, El método dismiss() no está definido para el tipo AlertDialog.Builder – Intathep

Cuestiones relacionadas