onListItemClick未在Listfragment上调用

时间:2012-03-09 14:06:08

标签: android

您好我的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});

4 个答案:

答案 0 :(得分:4)

如果您的布局中有一个项目可以窃取其他组件(如RatingBar)的输入,那么该组件需要被定义为不可聚焦,因此它不会抓取事件。

答案 1 :(得分:1)

我认为您可以通过调用此方法getActivity()来获取ListView。

如果我是对的,请使用getListView(); getActivity() {{1}}。{/ p>

答案 2 :(得分:1)

好的,我发现了错误。这是完全不同的东西。 事实上,我有一个评级栏作为列表项,甚至很难,它没有覆盖整个列表项,它以某种方式得到了所有点击事件。

现在将可见性更改为GONE解决了这个问题。所以问题在于这里是单个列表项的布局而不是适配器。

答案 3 :(得分:1)

使用OnTouchListener()代替我列表行中的其他组件为我做了诀窍。希望有所帮助。