Android:带Checkbox的ListView

时间:2015-11-03 04:45:38

标签: android listview checkbox android-listview

我已经搜索过这个问题的高低,但我找不到具体的东西。

基本上,我在ListView中有一个朋友列表,我正在尝试通过选择特定的朋友来创建一个组。为此,我创建了一个带有SearchView和ListView的Activity。搜索将过滤并显示我想要添加的朋友。为此,我想使用一个复选框。然后,所有“已检查”的朋友将被传递到另一个可以完成组创建的活动。

活动的布局有$session->set('_security_'.$security_context_name, serialize($token)); 。 我编写了自己的适配器,这个适配器膨胀了ListView的行布局。适配器的布局有ListView我已明确添加。

所以活动布局有:ListView 行布局有:TextView和Checkbox

但我遇到的问题是: 1.当视图刷新并且复选框被重新创建为未选中时,尝试在滚动/搜索列表视图时保持选中复选框 - 我通过维护单击的复选框列表暂时解决了这个问题。我在适配器的CheckBox方法中执行此操作。 2.尝试确定复选框属于ListView的哪一行。我需要这个来创建我的一群朋友。 3.允许编辑所选朋友列表 - 在创建组之前添加/删除朋友。

这是一个图解表示: enter image description here

修改

添加另一个图表以显示其工作原理。

所以从第一个活动开始,我去第二个搜索并添加朋友。一旦我选择了我的朋友,当我点击“确定”按钮时,我会将列表发送回我的第一个活动。

enter image description here

4 个答案:

答案 0 :(得分:1)

我终于想通了。

如上所述,我不确定如何通过"控制"选中复选框后返回活动。这是一个问题,因为复选框是适配器充气的布局的一部分。

在适配器中,我将其设置为通过"控制"返回活动以处理复选框上的检查:

checkbox.setOnCheckedChangeListener((SearchFriendActivity) context);

在SearchFriendActivity中,复选框上的检查可以通过以下方式处理:

@Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

        Log.i(TAG, "Inside onCheckedChanged");

        //The below code line will get the position of the row item    
        int pos = friendlistview.getPositionForView(buttonView);

        if(pos != ListView.INVALID_POSITION)
        {
            //Logic Here
        }
    }

请记住活动中的implements CompoundButton.OnCheckedChangeListener

一个简洁的小教程 here

答案 1 :(得分:0)

方法AlertDialogsetMultiChoiceItems()您可以使用复选框列表进行对话。它有帮助吗?

答案 2 :(得分:0)

我不知道它是否有效,因为我现在不在我的开发电脑上,我无法向您发布代码。但试试这个:

1实现复选框事件监听器(我不确定onCheckChanged())并将复选框值或索引存储在列表中(更好地使用索引)

2如果你有商店索引,你可以告诉哪个复选框属于哪一行。如果没有,也许你应该将setTag()设置为行或行的TextView,这样你就可以在意图到下一个活动之前对它进行比较。

3你不能告诉我们这个小组使用什么观点。很难回答,但我认为你从getIntent()获得的价值可能是一个列表,所以你可以使用删除按钮显示一些视图。因此,只需在创建组之前从列表中删除值。 为了添加更多朋友,也许你应该将列表意图重新用于第一个活动,并选中它检查的复选框,并允许用户再次检查/取消选中它。之后,再次将其用于该群体活动。

答案 3 :(得分:0)

这是一项简单的任务,请按照以下步骤操作:

  1. 制作布局xml文件并定义单个复选框的外观
  2. 创建列表视图。
  3. 填充listview,因为listview填充了简单的textview。
  4. 如果您对填充列表视图不够了解,请尝试使用此链接

    http://www.mysamplecode.com/2012/07/android-listview-checkbox-example.html

    如果您遇到任何问题,请与我联系。

    快乐的编码!!