您好我的ListFragment上的onListItemClick方法有问题。
我有一个包含2个ListFragments的活动。第一个是子导航,第二个显示一些内容。子nafigation完全没问题,并且在单击列表项时调用onListItemClick事件。但对于第二个ListFragment,没有任何反应。该方法未被调用。
到目前为止,我还尝试用标准片段替换Listfragment并手动设置setOnItemClickListener。但是当我点击列表条目时它不会被触发。我也尝试使用不同的Listener(例如onLongItemClick)测试它,但也没有发生任何事情。
这些是我的列表视图的设置。
<ListView
android:id ="@+id/mylistview"
android:layout_width ="match_parent"
android:layout_height ="match_parent"
android:divider ="@android:color/transparent"
android:dividerHeight ="10dp"
android:listSelector ="@android:color/transparent"
android:cacheColorHint ="@android:color/transparent"/>
注意,在使用ListFragment时,我用标准的“@android:id / list”替换了id。
有人知道这里出了什么问题吗?可以是其他ListFragments获取所有onListItemClick调用并阻止这个被触发吗?
这是附加到列表的适配器:
setListAdapter(new CustomRatingBarListAdapter(mListEntries,
getActivity(), R.layout.content_view_list_layout,
new int[] { R.id.list_item_text1 }, new String[] { TEXT});
答案 0 :(得分:4)
如果您的布局中有一个项目可以窃取其他组件(如RatingBar)的输入,那么该组件需要被定义为不可聚焦,因此它不会抓取事件。
答案 1 :(得分:1)
我认为您可以通过调用此方法getActivity()
来获取ListView。
如果我是对的,请使用getListView();
getActivity()
{{1}}。{/ p>
答案 2 :(得分:1)
好的,我发现了错误。这是完全不同的东西。 事实上,我有一个评级栏作为列表项,甚至很难,它没有覆盖整个列表项,它以某种方式得到了所有点击事件。
现在将可见性更改为GONE解决了这个问题。所以问题在于这里是单个列表项的布局而不是适配器。
答案 3 :(得分:1)
使用OnTouchListener()
代替我列表行中的其他组件为我做了诀窍。希望有所帮助。