Java GridView多选类库GridView

Java GridView多选类库GridView,java,android,Java,Android,我们如何实现这样的多选 当调用GridView.MultiChoiceModeListener时,图像将在左上角有一个复选框,就像android手机中的gallery应用程序一样 因为我尝试了一个不可见的复选框,在GridView.MultichoiceModelListener的OnCreateActionMode上,我做了以下操作: @Override public boolean onCreateActionMode(ActionMode actionMode, Menu m

我们如何实现这样的多选

当调用
GridView.MultiChoiceModeListener
时,图像将在左上角有一个复选框,就像android手机中的gallery应用程序一样

因为我尝试了一个不可见的复选框,在
GridView.MultichoiceModelListener的
OnCreateActionMode
上,我做了以下操作:

   @Override
    public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
        for(int view_group_index = 0; view_group_index < grid_view.getChildCount(); view_group_index++) {
            ViewGroup view_group = (ViewGroup)grid_view.getChildAt(view_group_index);
            for(int child_view_index = 0; child_view_index < view_group.getChildCount(); child_view_index ++) {
                View current_view = view_group.getChildAt(child_view_index);
                if (current_view instanceof CheckBox) {
                    CheckBox check_box = (CheckBox)current_view;
                    check_box.setVisibility(View.VISIBLE);
                }
            }
        }
@覆盖
公共布尔onCreateActionMode(ActionMode ActionMode,菜单){
对于(int view_group_index=0;view_group_index
基本上是迭代到
GridView
的所有可见子项,并将它们的
复选框设置为可见。但这里的问题是,只有在调用
onCreateActionMode
时,即在
GridView
上向下滚动后续项的
复选框时,才会设置可见的视图它们仍然是看不见的


那么基本上,我们如何在gallery应用程序上重新创建多选功能呢?

如果您要维护在模型/适配器中检查了哪些选项,并在选择后(在多选模式下)更新模型并调用“notifyDataSetChanged”该怎么办在适配器上?@FishStix问题不在于此。我的意思是。转到你的gallery应用程序,转到任何文件夹,注意图像的网格视图和
onLongClick
多选模式现在出现注意所有图像现在都有一个
复选框
我的问题是不知道我们选中了哪些图像,而是设置所有隐藏的
复选框,使其在多选模式出现时可见。我认为答案仍然相似。在多选模式更改时,使用“状态”更新更新适配器(翻转布尔值)并调用“notifyDataSetChanged”同样,所有可见项都将被更新。@FishStix但这有一个问题,因为gridview只显示可见的子项。这意味着当调用multi-select时,视图中只有4个子项,当它发生时,只会看到这些视图。我已设法破解了一个解决方案,它涉及到设置一个滚动侦听器w当调用multi-select时,当您将新选项滚动到视图中时,新选项将使用适当的“状态”变量进行配置。您的破解可能会起作用,但我仍然认为,正确使用适配器可以更简单地解决此问题。如果您要维护在模型/适配器中以及在选择后检查的选项,该怎么办(在多选模式下)更新模型并调用“notifyDataSetChanged”在适配器上?@FishStix问题不在于此。我的意思是。转到你的gallery应用程序,转到任何文件夹,注意图像的网格视图和
onLongClick
多选模式现在出现注意所有图像现在都有一个
复选框
我的问题是不知道我们选中了哪些图像,而是设置所有隐藏的
复选框,使其在多选模式出现时可见。我认为答案仍然相似。在多选模式更改时,使用“状态”更新更新适配器(翻转布尔值)并调用“notifyDataSetChanged”同样,所有可见项都将被更新。@FishStix但这有一个问题,因为gridview只显示可见的子项。这意味着当调用multi-select时,视图中只有4个子项,当它发生时,只会看到这些视图。我已设法破解了一个解决方案,它涉及到设置一个滚动侦听器w当您将新的滚动到视图中时,当调用multi-select时,新的将使用适当的“state”变量进行配置。您的hack可能会起作用,但我仍然认为使用适配器可以更简单地解决这个问题。