kojiko-android’s blog

開発中にハマった時の解決策や、忘れがちなことを残しておきます。

PreferenceActivityに、空のボタンを実装する

PreferenceActivityでは、チェックボックスやスイッチを簡単に実装できますが、
一つの行にタイトルだけを表示し、ボタンのようにタップしたら何かを実行したい。
そのような領域を作成するには、PreferenceScreenを利用します。

xmlでPreferenceScreenを配置します。
<PreferenceScreen
    android:title="タイトルの文字列"
    android:key="SAMPLE_KEY">
</PreferenceScreen>

(他のウィジェットのように、サマリーを指定することもできます)

keyは、PreferenceActivity内から
(PreferenceScreen) findPreference("SAMPLE_KEY")
のようにして探す際に必要です。

クリックを検出する

PreferenceActivityのオンクリエイト等で、以下のように記述します。

PreferenceScreen preferenceScreen = (PreferenceScreen) findPreference("SAMPLE_KEY");
preferenceScreen.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
    @Override
    public boolean onPreferenceClick(Preference preference) {
        //    実行したい処理
        return true;
    }
});

通常のボタンのように、クリックリスナーをセットして、実行したい処理を記述します。
例えば、「開発者にメールを送る」、
「シェアする」等の項目を追加するときに便利です。