如何在ListPreference上设置OnTouchListener()?

sca*_*moi 5 android preferenceactivity ontouchlistener listpreference touch-event

在视图上处理onTouchEvent非常简单,因为每个视图都有setOnTouchListener()方法来执行此操作.

唉,虽然ListPreference是一个视图,但它没有在布局XML中定义,因此无法通过findViewById()访问.所以...我似乎没有弄清楚如何为它设置setOnTouchListener().

我的想法是在PreferenceActivity的onCreate()中获得对它的引用,然后是getDialog().getCurrentFocus()但是在那个特定的时刻,它没有焦点,甚至没有对话框(getDialog()返回null,已确认).

知道如何解决这个问题吗?

小智 0

registerOnSharedPreferenceChangeListener(OnSharedPreferenceChangeListener listener)如果您对所有首选项感兴趣,或者.setOnPreferenceChangeListener(listener)您只想了解一项的更改,请用于共享首选项。当偏好更改时,您将收到通知。

  • `android.R.id.list` 是整个 PreferenceActivity 视图的 ID,而不是 `ListPreference`。另请注意,一个 PreferenceActivity 可以有多个“ListPreference”...最后,如果我真正想要的是 PreferenceActivity 视图,那么已经有 [PreferenceActivity.getListView()](http://developer.android.com/参考/android/app/ListActivity.html#getListView()) (2认同)