如何解决android.preference.Preference.setOnPreferenceClickListener不起作用
我想从我的SettingsFragment(扩展PreferenceFragment)到我的应用程序中的另一个活动设置一个意图。我最初尝试使用以下代码:(我使用的是android.preference.Preference)
preferences.xml (根首选项)
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
...
<PreferenceCategory android:title="About">
<Preference
android:key="about_here"
android:title="About us"
android:enabled="true" />
</PreferenceCategory>
</PreferenceScreen>
然后,在我的 SettingsFragment.java 中:
public class SettingsFragment extends PreferenceFragment {
public static final String goToAbout = "about_here";
private ViewGroup parent;
private View currView;
@Override
public void onCreate(@Nullable Bundle SavedInstanceState) {
super.onCreate(SavedInstanceState);
addPreferencesFromresource(R.xml.preferences);
Preference preferencex = findPreference(goToAbout);
preferencex.setonPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
Intent i = new Intent(getActivity(),AboutActivity.class);
i.putExtra("Class","Settings");
preference.setIntent(i);
Log.e("Preference","Clicked");
getActivity().startActivity(i);
return true;
}
});
}
...
}
但是,根本不会调用onPreferenceClick代码(我从Log.e()知道它不会发生)。我知道很多人以前都问过这个问题,但是即使实施解决方案也无济于事。我有什么想念的吗?
此外,我不介意在preferences.xml中实现Intent,但是我尝试了该操作,并且返回错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。