「Android/PreferenceActivityでonClick共通処理」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「prefrence設定画面でイベント *src/info.nonip.android.helloworld1.LiveWallpaperPreference.java package info.nonip.android.helloworld1; import info.nonip.android...」) |
|||
行55: | 行55: | ||
</PreferenceScreen> | </PreferenceScreen> | ||
</PreferenceScreen> | </PreferenceScreen> | ||
+ | |||
+ | ==シンプルに書くならこちら== | ||
+ | <pre> | ||
+ | PreferenceScreen preference = (PreferenceScreen)getPreferenceScreen().findPreference("key1"); | ||
+ | preference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { | ||
+ | public boolean onPreferenceClick(Preference preference) { | ||
+ | // ここに処理 | ||
+ | Intent intent = new Intent(getApplicationContext(), SampleActivity.class); | ||
+ | startActivity(intent); | ||
+ | return true; | ||
+ | } | ||
+ | }); | ||
+ | </pre> |
2018年12月6日 (木) 11:55時点における版
prefrence設定画面でイベント
- src/info.nonip.android.helloworld1.LiveWallpaperPreference.java
package info.nonip.android.helloworld1; import info.nonip.android.helloworld.R; import android.preference.Preference.OnPreferenceClickListener; import android.content.Context; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceScreen; public class LiveWallpaperPreference extends PreferenceActivity { // リンクキー private static String SETTING_LINK_KEY = "setting_link_key"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.wallpaperpref); // リンクプリファレンス取得 PreferenceScreen preference = (PreferenceScreen)getPreferenceScreen().findPreference(SETTING_LINK_KEY); // リンククリックイベント追加 preference.setOnPreferenceClickListener(new LinkOnPreference(getApplicationContext())); } // リンクイベントクラス private class LinkOnPreference extends AbstractOnPreference implements OnPreferenceClickListener { // construct public LinkOnPreference(Context context) { super(context); } // クリックイベント public boolean onPreferenceClick(Preference preference) { // 処理 return true; } } // 基底イベントクラス protected abstract class AbstractOnPreference { protected Context mContext; protected AbstractOnPreference(Context context) { mContext = context; } } }
- res/xml/pref.xml
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:title="設定" <PreferenceScreen android:key="setting_link_key" android:title="link_title" android:summary="link_summary" > </PreferenceScreen> </PreferenceScreen>
シンプルに書くならこちら
PreferenceScreen preference = (PreferenceScreen)getPreferenceScreen().findPreference("key1"); preference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { // ここに処理 Intent intent = new Intent(getApplicationContext(), SampleActivity.class); startActivity(intent); return true; } });