2017-10-22 3 views
0

ok, ich mache eine app für ein telefon. Ich habe eine Funktion für meinen Dialog erstellt und die Funktion nur bei Bedarf aufgerufen.dialog hintergrund

Ich möchte in der Lage sein, das Dialogfenster zu ändern, dh: verschiedene Farben und Linien und Zeug, um den Text zu trennen.

Ich habe überall im Internet gesucht und ich kann nichts finden, das mir helfen kann.

hier ist die Funktion, die ich anrufen bin ....

public void userNameRequired(View view) 
{ 
    AlertDialog.Builder builder = new AlerdDialog.Builder(this); 
    TextView newMessage = new TextView(this); 
    newMessage.setText(" User Name is Required to be between 7 and 20 caracters long."); 
    newMesage.setGravity(Gravity.CENTER_HORIZONTAL); 
    builder.setView(newMessage); 

    TextView title = new TextView(this); 
    title.setText("!! NOTICE !!"); 
    title.setGravity(Gravity.CENTER); 
    title.setTextSize(28); 
    title.setTextColor(Color.RED); 

    builder.setCustomTitle(title); 

    builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() 
    { 
     public void onClick(DialogInterface dialog, int id) 
     { 

     } 
    }); 

    builder.show(); 
} 
+0

ich für die im Internet gesucht haben Letzte 2 Tage. –

+0

Ich möchte in der Lage sein, den Hintergrund zu ändern und Sachen wie eine Zeile nach dem Titel und anderen Sachen hinzuzufügen. kann mir jemand helfen. –

+0

Diese Funktion funktioniert, aber alles, was ich versucht habe, um den Hintergrund zu ändern, ist fehlgeschlagen. –

Antwort

0

Lösung 1:

  1. öffnen colors.xml
  2. Farbe definieren wie folgt aus: <color name="background_dark">#3F51B5</color>
  3. Nach show() auf Ihrem Dialog aufrufen, stellen Sie die Hintergrundfarbe wie folgt aus:

    builder.getWindow().setBackgroundDrawableResource(android.R.color.background_dark); 
    

Lösung 2:

  1. De Fein ein eigenes Thema

    //assuming you have `@color/White` and `@color/colorPrimaryDark` defined in `colors.xml` 
    <style name="AlertDialogCustom" parent="@android:style/Theme.Dialog"> 
        <item name="android:textColor">@color/White</item> 
        <item name="android:textStyle">bold</item> 
        <item name="android:headerDividersEnabled">true</item> 
        <item name="android:typeface">normal</item> 
        <item name="android:background">@color/colorPrimaryDark</item> 
    </style> 
    
  2. Set-Stil

    AlertDialog.Builder builder = new AlerdDialog.Builder(new ContextThemeWrapper(this, R.style.AlertDialogCustom)); 
    

Also, das ist, wie Ihr Code aussehen sollte:

public void userNameRequired(View view) 
    { 
     AlertDialog.Builder builder = new AlerdDialog.Builder(new ContextThemeWrapper(this, R.style.AlertDialogCustom)); 
     TextView newMessage = new TextView(this); 
     newMessage.setText(" User Name is Required to be between 7 and 20 caracters long."); 
     newMesage.setGravity(Gravity.CENTER_HORIZONTAL); 
     builder.setView(newMessage); 

     TextView title = new TextView(this); 
     title.setText("!! NOTICE !!"); 
     title.setGravity(Gravity.CENTER); 
     title.setTextSize(28); 
     title.setTextColor(Color.RED); 

     builder.setCustomTitle(title); 

     builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() 
     { 
      public void onClick(DialogInterface dialog, int id) 
      { 

      } 
     }); 

     builder.show(); 
    } 

AlertDialog alertDialog = new AlertDialog.Builder(getContext(), R.style.MyDialogTheme) 
     ... 
     .create(); 
+0

danke für die Antwort, wo füge ich diesen neuen Code hinzu. Ich habe diese Art von Code zuvor in meiner Suche gesehen, aber ich konnte nicht herausfinden, wo Sie es hinzufügen. –

+0

Ich habe versucht, es zu meinem Layout hinzufügen und ein paar verschiedene Orte, aber Fehler in allen .. –

+0

hinzugefügt mehr Details in Lösung 1, bitte überprüfen und versuchen –

Verwandte Themen