2016-12-15 3 views
1

Ich versuche, meinen Alert-Dialog anzupassen, aber ich finde keinen Weg, den Teiler zwischen der Textnachricht und den Schaltflächen zu ändern.Ändern der Teilerfarbe in Android

Ich habe dieses individuelle Benachrichtigungs Dialog Thema in meinem styles.xml:

<style name="AlertDialogCustom" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <item name="colorPrimary">@color/primary</item> 
    <item name="colorPrimaryDark">@color/maroon</item> 
    <item name="colorAccent">@color/primary</item> 
</style> 

Und dies ist der Alert-Dialog in meiner Aktivität:

final AlertDialog.Builder alertDialog = new AlertDialog.Builder(ChefMenuActivity.this,R.style.AlertDialogCustom); 



        final EditText edittext = new EditText(getApplicationContext()); 
        alertDialog.setMessage("Item name: " + menuList.get(position).getItemName() + "\n" + "Old quantity: " + menuList.get(position).getQty_left()); 
        alertDialog.setTitle("Change item quantity"); 

        edittext.setTextColor(Color.BLACK); 
        edittext.setHint("E.g.: 10"); 
        edittext.setHintTextColor(Color.GRAY); 
        edittext.setInputType(InputType.TYPE_CLASS_NUMBER); 

        alertDialog.setView(edittext); 

        alertDialog.setPositiveButton("REMOVE", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int whichButton) { 
          Toast.makeText(getApplicationContext(), "Not impemented yet", Toast.LENGTH_SHORT).show(); 
          dialog.cancel(); 
         } 
        }); 

        alertDialog.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int whichButton) { 
          Toast.makeText(getApplicationContext(), "Not impemented yet", Toast.LENGTH_SHORT).show(); 
          dialog.cancel(); 
         } 
        }); 

        alertDialog.setNeutralButton("UPDATE", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int whichButton) { 
          Toast.makeText(getApplicationContext(), "Not impemented yet", Toast.LENGTH_SHORT).show(); 
          dialog.cancel(); 
         } 
        }); 

        alertDialog.show(); 

ich ein Stück Code gefunden die sich ändern Teiler zwischen dem Titel und der Nachricht:

Aber es ist nicht gültig für meinen Fall, da ich will o ändern Sie den Teiler zwischen der Nachricht und der Taste (wie in der Abbildung unten).

enter image description here

+3

Es ist kein Teiler, aber der Hintergrund des Bearbeitungstexts – RadekJ

+1

Verwenden Sie 'editText.getBackground(). SetColorFilter (color, PorterDuff.Mode.SRC_IN);', um die Unterstreichfarbe von edittext zu ändern. – Satendra

+0

Vielen Dank! Ich wusste nicht, dass es die Unterstreichung des EditText war. Es funktioniert gut! –

Antwort

0

Wie oben gesagt, war das, was ich ändern wollte, nicht der Teiler, sondern der Hintergrund des Bearbeitungstextes. Ich musste editText.getBackground() verwenden. SetColorFilter (color, PorterDuff.Mode.SRC_IN); Ändern Sie die Edittext-Unterstreichungsfarbe.

0

Verwenden Sie diese Bibliothek

https://github.com/danoz73/QustomDialog

QustomDialogBuilder qustomDialogBuilder = new QustomDialogBuilder(context). 
    setTitle("Set IP Address"). 
    setTitleColor("#FF00FF"). 
    setDividerColor("#FF00FF"). 
    setMessage("You are now entering the 10th dimension."). 

qustomDialogBuilder.show(); 

oder Sie können diese

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
builder.setTitle(R.string.dialog) 
     .setIcon(R.drawable.ic) 
     .setMessage(R.string.dialog_msg); 
    Dialog d = builder.show(); 
int dividerId = d.getContext().getResources().getIdentifier("android:id/titleDivider", null, null); 
View divider = d.findViewById(dividerId); 
divider.setBackgroundColor(getResources().getColor(R.color.my_color)); 

tun können Sie mehr Antworten finden here

Verwandte Themen