2011-06-06 19 views
17

que estoy tratando de conseguir el diálogo personalizado para cerrar el botón de prensaAndroid de diálogo de cierre personalizado

 //set up dialog 
     Dialog dialog = new Dialog(BrowseActivity.this); 
     dialog.setContentView(R.layout.about); 
     dialog.setTitle("This is my custom dialog box"); 
     dialog.setCancelable(true); 
     //there are a lot of settings, for dialog, check them all out! 

     //set up text 
     TextView text = (TextView) dialog.findViewById(R.id.TextView01); 
     text.setText(R.string.app_help_message); 

     //set up image view 
     ImageView img = (ImageView) dialog.findViewById(R.id.ImageView01); 
     img.setImageResource(R.drawable.icon); 

     //set up button 
     Button button = (Button) dialog.findViewById(R.id.Button01); 
     button.setOnClickListener(new View.OnClickListener() { 
     @Override 
      public void onClick(View v) { 
      Dialog.dismiss(); 

      } 
     }); 

     //now that the dialog is set up, it's time to show it  
     dialog.show(); 

     return true; 

dialog.dismiss no está funcionando para mí. Simplemente estoy tratando de usar este cuadro de diálogo personalizado como una pantalla de ayuda y quiero presionar un botón para cerrarlo.

que soy muy nuevo en dev androide, pero he estado tratando de esto por muchos muchas horas

Gracias por cualquier consejo

+0

Necesita llamar a despedir en la instancia de diálogo (que ha creado usando Diálogo diálogo = nuevo Diálogo (BrowseActivity.this), no en una clase de Diálogo. –

Respuesta

31
final Dialog dialog = new Dialog(BrowseActivity.this); 

Usted necesita diálogo minúsculas.

public void onClick(View v) { 
    dialog.dismiss(); 
} 

También AlertDialog.Builder puede ser una mejor opción para usted.

+0

bien que resolvió el problema, he usado AlertDialog.Builder para el sobre pantalla, pero no pude encontrar la manera de establecer un diseño. Como dije, todo es nuevo para mí y me sorprende que haya llegado tan lejos. Leeré más – user639410

2

Puede llamar a dismiss(); en el diálogo Esto funciona para mí.

Cuestiones relacionadas