我的ListView中的CheckedTextView勾选并取消勾选

我的ListView中的CheckedTextView勾选并取消勾选,listview,android-arrayadapter,checkedtextview,ischecked,Listview,Android Arrayadapter,Checkedtextview,Ischecked,我已经花了3个小时试着做这件事,所以如果我忘记发布一些东西,很抱歉 问题是: 我使用的是一个ListView,它有一个自定义BuddyArrayAdapter,用于膨胀包含并排图像和CheckedTextView的XML。我只想有一个选择,所以我将其设置为使用单选 (假设符号是图像,括号是选中TextView的复选框。) 明天我会发布代码,但以下是我的经历。 -如果我在listView的onItemClick()中使用getChildAt(),随机的子对象会进行检查和关闭,但在单击足够多之后

我已经花了3个小时试着做这件事,所以如果我忘记发布一些东西,很抱歉

问题是:

  • 我使用的是一个ListView,它有一个自定义BuddyArrayAdapter,用于膨胀包含并排图像和CheckedTextView的XML。我只想有一个选择,所以我将其设置为使用单选
(假设符号是图像,括号是选中TextView的复选框。)

明天我会发布代码,但以下是我的经历。 -如果我在listView的onItemClick()中使用getChildAt(),随机的子对象会进行检查和关闭,但在单击足够多之后,所有子对象最终都会取消选中。 -如果我在适配器的getView()中实现checkedTextView.onClick(),则listview中的每一行都会得到NullPointerException。 -如果我做了其他有意义的事情,在选择一行时,复选框会勾选并立即取消勾选,就像我没有单击一样。但它仍然被“点击”,因为我可以通过listView.getCheckEditePosition()获得它

我已经浏览了代码,不再在任何地方调用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);
        }
public void onItemClick(AdapterView父视图、视图视图、整型位置、长id)
{
listConversations.setItemChecked(位置,true);
Log.d(“>>>>>>>>>>>>>>>>>>>>>>>”,“listConversations.GetCheckEditePosition()=”+listConversations.GetCheckEditePosition());
列出对话。
OnContactClick(位置,id);
}
记录的数字是正确的。然而,即使使用这种愚蠢的方法,CheckedTextView的可检查部分仍然会在单击时自行勾选/取消勾选。这是我今天最后一次尝试,因为我希望listview勾选所有其他视图,但没有。要么我有多个,要么根本没有

如果你仍然不明白这个问题-我是怎么搞砸的,赚了这么多钱,却没能让复选标记按预期的方式工作

请帮忙。我在这件愚蠢可笑的事情上浪费了3个小时。我绝望了

看起来我和这家伙有着同样的问题
因为没人接,我想我得

诀窍是使包装器类实现可检查。如果缺少包装器类,则创建包装器类

        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);
        }