2016-12-15 12 views
1

Я пытаюсь настроить мой диалог оповещений, но я не могу найти способ изменить разделитель между текстовым сообщением и кнопками.Изменение цвета разделителя в Android

У меня есть этот обычай оповещение Диалог тема в моем 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> 

И это оповещение Диалог в моей деятельности:

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(); 

я нашел кусок кода, чтобы изменить разделитель между заголовком и сообщением:

   AlertDialog dialog = alertDialog.show(); 

       int titleDividerId = getResources().getIdentifier("titleDivider", "id", "android"); 
       View titleDivider = dialog.findViewById(titleDividerId); 
       if (titleDivider != null) 
        titleDivider.setBackgroundColor(Color.parseColor("#ff4444")); 

Но это не относится к моему делу, так как я хочу t o измените разделитель между сообщением и кнопкой (как на рисунке ниже).

enter image description here

+3

Это не разделитель, а фон текста редактирования – RadekJ

+1

Используйте 'editText.getBackground(). SetColorFilter (цвет, PorterDuff.Mode.SRC_IN);' изменить цвет подчеркивания edittext. – Satendra

+0

Большое спасибо! Я не понимал, что это подчеркивание EditText. Он работает отлично! –

ответ

0

Как было сказано выше, вещь, которую я хотел изменить, была не разделителем, а фоном текста редактирования. Мне пришлось использовать editText.getBackground(). SetColorFilter (цвет, PorterDuff.Mode.SRC_IN); изменить цвет подчеркивания edittext.

0

Используйте эту библиотеку

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(); 

или вы можете сделать это

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)); 

вы можете найти все ответы here