我通过扩展PreferenceFragment来创建一个设置片段。我需要知道用户何时在通过在父容器上设置onClick事件来处理常规片段的片段视图(整个视图)中单击。但是,当我使用PreferenceFragment时,这不起作用。我在我的activity_main.xml中以下设置:如何在PreferenceFragment上获取onClickEvent?
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rootView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:onClick="clickedView"> <---- Observe this click event on the parent view
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
这是PreferenceFragment:
public class SettingsFragment extends android.preference.PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
//Can I do something here to handle the click event??
}
}
所以,如果我添加了一个普通的片段,当我点击屏幕onClick事件被称为但是当我用PreferenceFragment替换它时不会调用它。我猜PreferenceFragment处理它自己的点击事件,并不会将它“推到”其他视图。是否有可能在PreferenceFragment上获得onClickEvent?
我正在使用'addPreferencesFromResource(R.xml.preferences);'来创建PreferenceFragment。即使我在用getView()返回的视图上设置了onClickListener,它也不会被称为 – FewWords
@FewWords我更新了答案。尝试这个。 – Prashanth
这是为你工作吗?因为我现在试图将你的代码复制到一个完整的新项目中,但我仍然没有进入onClick事件。如果我尝试使用“OnTouchListener”,则会发生同样的事情。 – FewWords