1

アラートダイアログ用にこれを持っていますが、これは完璧に機能します

 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 ファイルに追加しましたが、このスタイル タグは認識されません。

4

1 に答える 1

0

警告ダイアログは以下を使用します:

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>
于 2011-11-14T11:47:07.963 に答える