gpt4 book ai didi

android - onPreferenceClick 和 OnPreferenceClickListener

转载 作者:太空狗 更新时间:2023-10-29 16:41:56 27 4
gpt4 key购买 nike

我正在尝试在我的 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com