2016-12-15 46 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 메시지와 버튼 사이의 구분선을 변경하십시오 (아래 그림 참조).

enter image description here

+3

디바이더가 아니라 편집 텍스트의 배경입니다. – RadekJ

+1

edittext 밑줄 색을 변경하려면'editText.getBackground() .setColorFilter (color, PorterDuff.Mode.SRC_IN);'를 사용하십시오. – Satendra

+0

대단히 감사합니다! 나는 그것이 EditText의 밑줄이라는 것을 깨닫지 못했다. 그것은 잘 작동합니다! –

답변

0

위에서 말했듯이, 내가 바꾸고 싶었던 것은 편집자 텍스트가 아니라 분배 자의 배경이었습니다. editText.getBackground()를 사용해야했다. setColorFilter (color, 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