处理视图上的onTouchEvent很简单,因为每个视图都有setOnTouchListener()方法来实现这一点。
然而,尽管ListPreference是一个视图,但它没有在布局XML中定义,因此无法通过findViewById()访问。所以...我似乎想不出如何为它设置setOnTouchListener()。
我的想法是在PreferenceActivity的onCreate()中获取对它的引用,然后获取Dialog().getCurrentFocus(),但在那个特定的时刻,它没有焦点,甚至没有对话框(getDialog()返回null,已确认)。
有什么办法可以解决这个问题吗?
findViewById(android.R.id.list)
的操作吗? - bogdanfindViewById()
要使用什么id呢?据我所知,ListPreference没有id,因为它不是在布局XML中定义的。你能指出获取ListPreference id的代码吗? - scatmoiandroid.R.id.list
是整个PreferenceActivity
视图的 ID,而不是ListPreference
的ID。另外请注意,一个PreferenceActivity
可以拥有多个ListPreference
。最后,如果我只想要PreferenceActivity
视图,已经存在 PreferenceActivity.getListView() 方法可以使用。 - scatmoi