が、私は同じ問題に出くわしたと私が見つけた:
public void logInDialog()
{
ContextThemeWrapper ctw = new ContextThemeWrapper(this, R.style.dialogStyle);
AlertDialog.Builder builder = new AlertDialog.Builder(ctw);
builder.setTitle("Log in");
View prefView = View.inflate(this, R.layout.log_in, null);
//The rest of the code.........
}
は、これは私のスタイルのコードです溶液。使用
public void logInDialog()
{
AlertDialog.Builder builder = new AlertDialog.Builder(context);
LayoutInflater inflater = context.getLayoutInflater();
//setting custom view for our dialog
View myview = inflater.inflate(R.layout.YOUR_CUSTOM_LAYOUT, null);
builder.setNeutralButton(android.R.string.cancel, null);
builder.setView(myview);
//creating an alert dialog from our builder.
AlertDialog dialog = builder.create();
dialog.show();
//retrieving the button view in order to handle it.
Button neutral_button = dialog.getButton(DialogInterface.BUTTON_NEUTRAL);
Button positive_button = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
if (neutral_button != null) {
neutral_button.setBackgroundDrawable(context.getResources()
.getDrawable(R.drawable.custom_background));
neutral_button.setTextColor(context.getResources()
.getColor(android.R.color.white));
}
if (positive_button != null) {
positive_button.setBackgroundDrawable(context.getResources()
.getDrawable(R.drawable.custom_background));
positive_button.setTextColor(context.getResources()
.getColor(android.R.color.white));
}
}
そして、あなたのボタンのXMLS:あなたはこのような何かをすべき警告ダイアログのボタン内のテキストの色を変更するために
custom_background.xmlを
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="#000000"/>
<item android:drawable="@drawable/selectable_item_background"/>
</layer-list>
そしてselectable_item_background.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/item_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/item_focused" android:state_focused="true"/>
<item android:drawable="@drawable/item_focused" android:state_selected="true"/>
<item android:drawable="@android:color/transparent"/>
</selector>
私は個人的にフラグメント内でこのコードを使用しました。これがLayoutInflaterを持っている理由です。あなたの場合、このステップをスキップすることができます。 将来的に他の人に役立つことを願っています。
グレート、おかげでトン! – Malfunction