AlertDialog и DialogPreference - PullRequest
       22

AlertDialog и DialogPreference

1 голос
/ 14 ноября 2011

У меня есть это для моих диалогов, и это прекрасно работает

 ContextThemeWrapper ctw = new ContextThemeWrapper( MvcnContactList.this, R.style.MyTheme );
                alertDialogBuilder = new AlertDialog.Builder(ctw);
//set some views and onclick listeners
                alertDialog = alertDialogBuilder.create();
                alertDialog.setCancelable(false);
                alertDialog.show();

Но у меня есть диалог о предпочтениях, и я хочу, чтобы этот диалог имел тот же стиль, что и мой диалог предупреждений. Но я не знаю, как применить этот стиль к моему диалогу

public class About extends DialogPreference {
    public AboutDialog(Context oContext, AttributeSet attrs)
    {
        super(oContext, attrs); 
    }
}

ПРИМЕЧАНИЕ. Я добавил android: style = "@ style / impex_dialog" в файл pref.xml, и этот тег стиля не распознается.

1 Ответ

0 голосов
/ 14 ноября 2011

Оповещение использует диалог:

com.android.internal.R.style.Theme_Dialog_Alert

Из источника Android:

protected AlertDialog(Context context, boolean cancelable, OnCancelListener cancelListener) {
    super(context, com.android.internal.R.style.Theme_Dialog_Alert);
    setCancelable(cancelable);
    setOnCancelListener(cancelListener);
    mAlert = new AlertController(context, this, getWindow());
}

Так что, я думаю, вы должны попробовать что-то вроде этого, как это определено в themes.xml:

<!-- Default theme for alert dialog windows, which is used by the
        {@link android.app.AlertDialog} class.  This is basically a dialog
         but sets the background to empty so it can do two-tone backgrounds. -->
<style name="Theme.Dialog.Alert" parent="@android:style/Theme.Dialog">
    <item name="windowBackground">@android:color/transparent</item>
    <item name="windowTitleStyle">@android:style/DialogWindowTitle</item>
    <item name="windowIsFloating">true</item>
    <item name="windowContentOverlay">@null</item>
</style>
...