ListView中的CheckedTextViews勾选并取消勾选

时间:2012-03-01 20:40:48

标签: listview android-arrayadapter checkedtextview ischecked

我花了3个小时试图完成这项工作,对不起,如果我忘了发帖......

问题在于:

  • 我正在使用一个ListView,它有一个自定义的BuddyArrayAdapter,它可以扩展包含并排图像和CheckedTextView的XML。我想只有一个选择,所以我把它设置为使用SINGLE_CHOICE。

(假装&符号是图像和括号是checkedtextview的复选框。)

    //my list looks like this

    & name1Here          []

    & name2Here          []

    & name3Here          []

    & name4Here          []

我明天会发布代码,但这是我一直在体验的内容。   - 如果我在listView的onItemClick()中使用getChildAt(),随机的子项会检查和关闭,但是经过足够的点击后,所有这些都会最终取消选中。   - 如果我在适配器的getView()中实现checkedTextView.onClick(),我会获得listview中每一行的nullpointerexceptions。   - 如果我做了其他有意义的事情,在选择一行时,复选框会勾选并立即取消自我,就好像我没有点击一样。但它仍然被“点击”,因为我可以通过listView.getCheckedItemPosition()获得它

我查看了代码,而且我不再在任何地方调用toggle()了。我唯一的clickListener就在列表中。

基本上,这就是现在的样子

        public void onItemClick(AdapterView<?> parent, View view, int position, long id)
        {
            listConversations.setItemChecked(position, true);
            Log.d("<>>>>>>>>>>>>>>>>>>>>>>>>>>>", "listConversations.getCheckedItemPosition() = "+listConversations.getCheckedItemPosition());

            listConversations.


            OnContactClick(position, id);
        }

记录的数字是正确的。然而,即使使用这种愚蠢的方法,CheckedTextView的可检查部分仍然可以在一次点击时自动勾选/取消。这是我今天的最后一次尝试,因为我期望列表视图勾选所有其他的,但没有。要么我不止一个,要么根本没有。

如果你仍然不明白这个问题 - 我为什么搞砸了这个地狱并且无法使复选标记按照预期工作?!?!

请帮忙。我在这个荒谬的事情上浪费了3个小时。我很绝望。

lastminuteadd:看起来我和这个家伙有同样的问题 ListView: setItemChecked only works with standard ArrayAdapter - does NOT work when using customized ArrayAdapter?

1 个答案:

答案 0 :(得分:0)

因为没有人回答我想我必须......

诀窍是让Wrapper类实现Checkable。并且如果缺少一个包装类...