2016-05-06 17 views
1

habe ich den folgenden Code einen Benachrichtigungsdialog in Android zu generieren:Android Alertdialog Builder besserer Code

new AlertDialog.Builder(actContainer). 
      setIcon(R.mipmap.ic_attach_file_black_24dp). 
      setTitle(strTitle). 
      setMessage(Html.fromHtml(strHtml)). 
      setCancelable(false). 
      setPositiveButton("OK", 
        new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialogInterface, int i) { 
          Log.i("OptimGeek", "prrrrrrr . . .") 
         } 
        } 
      ). 
      show() 

Es in groovy ist, ist es tatsächlich funktioniert großartig, wie die „setPossitiveButton“ zu verbessern, um die innere Klasse zu vermeiden?

Vielen Dank im Voraus

Antwort

1

Zwänge SAM Typs verwenden oder Implicit Closure Coercion:

new AlertDialog.Builder(actContainer). 
    setIcon(R.mipmap.ic_attach_file_black_24dp). 
    setTitle(strTitle). 
    setMessage(Html.fromHtml(strHtml)). 
    setCancelable(false). 
    setPositiveButton("OK", { DialogInterface dialogInterface, int i -> 
     Log.i("OptimGeek", "prrrrrrr . . .") 
    } as DialogInterface.OnClickListener). 
    show() 
+0

Dank 4 so elegante Antwort! . . . und danke 4 der Link, ich vermisse neue Funktionen auf groovy –

+0

Laut der Dokumentation könnte ich sogar vermeiden, "wie DialogInterface.OnClickListener", es funktioniert gut, aber ich weiß noch nicht die Wirkung auf die Leistung, so dass ich ' lch behalte es. Schließlich wollte ich nur die innere Klassendeklaration im Java-Stil vermeiden. Ich kann sagen, dass das Vervollständigen mit "as DialogInterface.OnClickListener" einfach klar machen Code –

+0

Froh, zu helfen. Wenn die Antwort nützlich war, kannst du sie akzeptieren. Vielen Dank – dmahapatro

Verwandte Themen