2部構成の設定画面を実装したい。チェックボックスをクリックすると、最初のカテゴリがロックされ、2 番目のカテゴリがロック解除されます。そうでない場合は、逆にします。以前のアクティビティに移動してから新しい (sharedPreferences) に移動した場合にのみ機能することがわかりました。どのリスナーをどのようにオーバーライドする必要がありますか?
8056 次
2 に答える
7
次のようなものを試すことができます:
final Preference otherpref = (Preference) findPreference("otherpref");
final Preference pref = (Preference) findPreference("checkbox");
pPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
otherPref.setSelectable(false);
Toast.makeText(getBaseContext(), "Some text", Toast.LENGTH_SHORT).show();
return true;
}
});
目的のカテゴリを無効にします。
于 2011-02-18T18:42:14.507 に答える
1
PreferenceActivity を拡張し、OnSharedPreferenceChangeListener を実装するクラスとして、設定アクティビティを実装しました。
public class SettingsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {
@Override
public void onCreate(Bundle savedInstanceState) {
Context context = getApplicationContext();
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
settings.registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
// Check the checkboxes
}
}
于 2011-02-18T18:50:07.917 に答える