PreferenceFragment を使って設定画面を作り、

DialogPreferenceをカスタムしたビューを表示した時の話

環境は Android Studio 1.1.0
ActionBarActivity を利用 (なんでもいい)

設定メニュー


<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory >
        <info.nukoneko.test20150428.CustomDialogPreference android:title="カスタムビュー" />
    </PreferenceCategory>
</PreferenceScreen>

カスタムビュー


public class CustomDialogPreference extends DialogPreference {
    public CustomDialogPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CustomDialogPreference(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
    @Override
    protected View onCreateDialogView(){
        LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        return inflater.inflate(R.layout.custom_dialog, null);
    }
}

まず普通に作った。
Screenshot_2015-04-28-19-59-22
コンストラクタに、


    setDialogTitle(null);
    setNegativeButtonText(null);
    setPositiveButtonText(null);

を追加


    public CustomDialogPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
        setDialogTitle(null);
        setNegativeButtonText(null);
        setPositiveButtonText(null);
    }

    public CustomDialogPreference(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        setDialogTitle(null);
        setNegativeButtonText(null);
        setPositiveButtonText(null);
    }

消えました。
Screenshot_2015-04-28-20-01-39
② XML
Java は最初の CustomDialogPreference を利用

設定メニューのXMLを


<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory >
        <info.nukoneko.test20150428.CustomDialogPreference android:title="カスタムビュー"
            android:dialogTitle=""
            android:negativeButtonText="@null"
            android:positiveButtonText="@null"/>
    </PreferenceCategory>
</PreferenceScreen>

こうする。

消えた(手抜き)
Screenshot_2015-04-28-20-01-39

ではでは