「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;
}
});
