2012-07-11 16 views
8

Desidero personalizzare una finestra di dialogo in Android. So come impostare il titolo per il dialogo:Come impostare l'icona per la finestra di dialogo in Android

dialog.setTitle("O message"); 

Ora voglio impostare l'icona davanti al titolo. Come posso ottenere questo?

Dialog dialog; 
dialog = new Dialog(this); 
dialog.setContentView(R.layout.layouterror22);  
dialog.setTitle("O message"); 

risposta

23

È possibile aggiungere un'icona con il seguente codice:

Dialog dialog = new Dialog(context); 

dialog.requestWindowFeature(Window.FEATURE_LEFT_ICON); 
dialog.setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.your_icon); 
dialog.setContentView(R.layout.custom_dialog); 
dialog.setTitle("Dialog Title"); 

dialog.show(); 

Vedi "Icons in custom dialogs android".

+3

L'ordine delle linee: è molto importante in quanto le caratteristiche devono essere richieste prima che qualsiasi contenuto venga inserito nella finestra di dialogo. – msysmilu

+2

L'ordine delle linee: è molto importante !!! dialog.setFeatureDrawableResource (Window.FEATURE_LEFT_ICON, R.drawable.your_icon); dovrebbe essere chiamato dopo setContentView –

4
dialog.setIcon(Drawable icon); 

o

dialog.setIcon(int resId); 

Spero che questo aiuti.

+0

ottengo dialog.setIcon ma non supportano (Nota: questo dialgo personalizza) questo è possibile codice: finestra di dialogo; \t dialog = new Dialog (this); \t \t dialog.setContentView (R.layout.layouterror22); dialog.setTitle ("O messaggio"); –

+0

La domanda riguarda la finestra di dialogo, non AlertDialog. La risposta sopra non è applicabile alla finestra di dialogo. Vedi commento di Carl Bosch sopra. – user1608385

8

uso questo,

dialog.setIcon(R.drawable.ic_launcher) 

avete bisogno di più di personalizzazione significa, consultare questo sito http://www.androidhive.info/2011/09/how-to-show-alert-dialog-in-android/

+2

questo è Dialog do not AlertDialog –

+0

@ user1497597: fare riferimento a questo link ha un esempio è possibile apportare modifiche come il proprio http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-android-application – Aerrow

3

Può essere che si dovrebbe usare un AlertDialog. Se lo fai, solo

AlertDialog.Builder b = new AlertDialog.Builder(yourContext); 
b.setIcon(yourIcon); 
/* add other properties thanks to b.set... */ 
b.create().show(); 

Spero che questo ti aiuti.

+0

ottengo dialog.setIcon ma non supporto (Nota: questo dialgo personalizza) questo è codice: finestra di dialogo; \t dialog = new Dialog (this); \t \t dialog.setContentView (R.layout.layouterror22); dialog.setTitle ("O messaggio"); –

+1

'AlertDialog' sembra aver bisogno di' setTitle() 'applicato per' setIcon() 'per funzionare. – jdv

0

Se si utilizza uno viewPager con frammenti, è possibile chiamare uno safeExit() dal onBackPressed() dello MainActivity. Questo è quello che ho fatto, non ho mai avuto problemi:

@Override 
    public void onBackPressed() { 

     try { 
      if (getFragmentManager().getBackStackEntryCount() > 1) { 
       FragmentManager.BackStackEntry first = getFragmentManager().getBackStackEntryAt(0); 
       getFragmentManager().popBackStack(first.getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE); 
      } else 
       safeExit(); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 


    private void safeExit() { 
     new Builder(this).setIcon(R.drawable.ic_launcher).setTitle("Exit!").setMessage(
       "Close Application?").setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 
       MainActivity.this.finish(); 
      } 
     }).setNegativeButton("No", null).show(); 
    } 
Problemi correlati