我通過擴展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