java - ListActivity (ListView) 中带有 SimpleCursorAdapter 的 CheckBox

标签 java android listview checkbox listactivity

大家好,我知道有很多实现自定义适配器的教程,但我不确定这是否适合我。我有一个自定义项目布局的 ListView ,该布局由两个 TextView 和一个 CheckBox 组成。我有以下代码:

list.setOnItemClickListener(new OnItemClickListener(){
        @Override
        public void onItemClick(AdapterView<?> adapter, View view, int position,
                long rowid) {

            CheckBox c = (CheckBox) view.findViewById(R.id.item_chkbox);
            c.setChecked(!c.isChecked());
            String n = ((TextView) view.findViewById(R.id.item_charName)).getText().toString();
            String p = ((TextView) view.findViewById(R.id.item_playerName)).getText().toString();
            ...

当我点击列表中的一个项目时,一个复选框被触发并被选中,但它不是正确的。这也不是随机的。触发的 CheckBox 始终位于另一侧,镜像在列表的中心。例如,如果我有一个列表:

0 1 2 3 4

然后点击“0”,4 的支票将被触发。如果我点击 1,3 的支票就会触发。如果我点击 2,则 2 的支票会触发。更奇怪的是,如果我点击 0 两次,3 次检查,然后 0 次检查。第三次点击,3 取消选中。第四 - 0 取消选中。在所有情况下,这种模式都会继续。我不太明白发生了什么。

请注意字符串 n 和 p 都正确输出。换句话说,点击 0 将在相应的列表项中检索“名称”的字符串。只有复选框不正常。有什么想法吗?

最佳答案

我遇到了你的问题,我的解决方案是删除与 ListView 的多项选择相关的所有内容,例如 android:CHOICE_MODE_MULTIPLE、android:choiceMode...。试试吧!

关于java - ListActivity (ListView) 中带有 SimpleCursorAdapter 的 CheckBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5921188/

相关文章:

java - red5 v0.9 : convert from org. red5.io.utils.ObjectMap 到类

android:编程调用软键盘的问题

java - Android: ListView 中的指南针+距离

android - 带有 PendingIntent 的 FusedLocationApi 只被触发一次并且它的 null

android - 自定义 listView 行,带有复选框和旋转时的保存复选标记

android - 根据内容对 ListView 中的相似行进行分组

java - 将(WAV)写入文件只能说一个字(最后一个字)

java - 当我输入数字时如何得到不同的结果?

java - JMS MessageProducer.setTimeToLive() 与 TextMessage.setJMSExpiration()

android - 需要帮助了解 Android 上的 GPS