ama aynı sorunla karşılaştım ve ben buldum:
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.........
}
Bu benim tarzım kodudur: Burada
benim kodudur çözüm. kullanılan
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));
}
}
Ve düğme için XMLs: Böyle bir şey yapması gerektiğini bir Uyarı iletişim kutusunun bir düğmenin içinde metnin rengini değiştirmek için
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>
Ve 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>
Bu kodu bir Fragman içinde kişisel olarak kullandım, bu yüzden bir LayoutInflater'ım var. Durumunuzda bu adımı atlayabilirsiniz. Umarım gelecekte diğer insanlara yardımcı olur.
Harika, teşekkürler bir ton! – Malfunction