- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试在我的 Java 代码中评估我的偏好,以便启用/禁用他们选择不执行其他选项的其他选项......到目前为止,我试图只实现 OnPreferenceClickListener 但是我从未看到为变化干杯。我究竟做错了什么?似乎还有很多其他类似的问题,但我看不出我在引用这些问题时的错误。
public class UserSettingActivity extends PreferenceActivity implements OnPreferenceClickListener{
SharedPreferences mPreferences;
Boolean frequency;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
@Override
public boolean onPreferenceClick(Preference preference) {
mPreferences = PreferenceManager.getDefaultSharedPreferences(this);
frequency = mPreferences.getBoolean("frequency", true);
Context context = getApplicationContext();
Toast.makeText(context, "Hello toast 0!", Toast.LENGTH_LONG).show();
if (!frequency) {
Context context2 = getApplicationContext();
Toast.makeText(context2, "Hello toast 1!", Toast.LENGTH_LONG).show();
} else if (preference.getKey().equals("schedulestop")) {
} else if (preference.getKey().equals("priority")) {
} else {
Context context3 = getApplicationContext();
Toast.makeText(context3, "Hello toast 0!", Toast.LENGTH_LONG).show();
}
return false;
}
}
最佳答案
您必须为每个个人偏好注册 PreferenceClickListener
somePreference.setOnPreferenceClickListener(this);
或者您可以对所有首选项使用 getSharedPreferences().registerOnSharedPreferenceChangeListener
。
public class UserSettingActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener{
SharedPreferences mPreferences;
Boolean frequency;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
@SuppressWarnings("deprecation")
@Override
protected void onPause()
{
super.onPause();
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}
@SuppressWarnings("deprecation")
@Override
protected void onResume()
{
super.onResume();
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}
@SuppressWarnings("deprecation")
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (key.equals("schedulestop")) {
// do something
}
else if (key.equals(......
}
}
关于android - onPreferenceClick 和 OnPreferenceClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16449372/
我有一个 Activity,它使用 PreferenceFragment 显示设置菜单。有一种方法可以将 Bean 列表传递给 fragment ,以便它可以动态生成一个 Preference 列表,
我是 Android 编程新手,首先我想使用 SharedPreferences 制作一个简单的选项菜单演示。我已经创建了基本结构,但我不知道如何将 OnPreferenceClickListener
我正在实现一个自定义的 Preference,其行为类似于按钮(该首选项将打开一个对话框以恢复所有首选项的默认值)。如果您单击对话框显示的 ResetPreference 并在肯定的单击上清除并重置所
我正在尝试在我的 Java 代码中评估我的偏好,以便启用/禁用他们选择不执行其他选项的其他选项......到目前为止,我试图只实现 OnPreferenceClickListener 但是我从未看到为
我正在尝试通过 PrefernceFragment 实现 OnPreferenceClickListener,但似乎从未调用过 onPreferenceClick()。 我有另一个 Prefernce
来自这个例子: private static Preference.OnPreferenceClickListener BindToPreferenceClickListener = new Pref
/** * A preference change listener to resynchronize a contact list * */ private static Preference
我在 xml 文件中定义了我的首选项,如下所示: .... 在 PreferenceActivity 中,我为“pref_screen_key”覆盖了 onPrefere
我是一名优秀的程序员,十分优秀!