[英]Change divider color in 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"));
但这对我来说是无效的,因为我想更改消息和按钮之间的分隔线(如下图所示)。
使用这个图书馆
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));
您可以在这里找到更多答案
如前所述,我要更改的不是分隔线,而是编辑文本的背景。 我不得不使用editText.getBackground()。setColorFilter(color,PorterDuff.Mode.SRC_IN); 更改edittext下划线颜色。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.