Android 如何在listview项中设置gridview,并使用uniq位置单击每个网格项,然后单击evant

Android 如何在listview项中设置gridview,并使用uniq位置单击每个网格项,然后单击evant,android,android-layout,listview,gridview,Android,Android Layout,Listview,Gridview,我想在列表视图中使用图像网格日期。首先获取图像的日期列表,然后获取特定日期图像列表的图像路径列表。最后填充特定日期图像的列表和网格(图像数量和日期不固定),查看屏幕截图。 现在我的问题是,当我在图像上设置click listener并在click上添加复选标记image,然后在两个位置添加image时,为什么我不知道。第二个问题是当我向下滚动列表视图时,复选标记visible消失了 我想选择多个图像并添加复选标记图像,并执行“删除图像”和“共享图像”等操作 我调用每个列表项的网格适配器,看看

我想在列表视图中使用图像网格日期。首先获取图像的日期列表,然后获取特定日期图像列表的图像路径列表。最后填充特定日期图像的列表和网格(图像数量和日期不固定),查看屏幕截图。

现在我的问题是,当我在图像上设置click listener并在click上添加复选标记image,然后在两个位置添加image时,为什么我不知道。第二个问题是当我向下滚动列表视图时,复选标记visible消失了

我想选择多个图像并添加复选标记图像,并执行“删除图像”和“共享图像”等操作

我调用每个列表项的网格适配器,看看我的代码,告诉我出了什么问题

自定义列表视图适配器:获取视图方法

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub

    View row = convertView;

    ViewHolder viewHolder = new ViewHolder();

    DateSortedImageItem item = getItem(position);

    if (row == null) {

        row = mInflator.inflate(R.layout.row_date_sorted_image_list, parent, false);
        viewHolder.tv_date = (TextView) row.findViewById(R.id.tv_row_date);
        viewHolder.rowGridView = (GridView) row.findViewById(R.id.gv_row_item);

        viewHolder.tv_date.setText(item.getDate());

        row.setTag(viewHolder);

        gridAdapter = new GridAdapter(context, R.layout.row_sorted_image_gridview_item,
                item.getDateSortedImageList(), position);

        viewHolder.rowGridView.setAdapter(gridAdapter);

    } else {
        row.getTag();
    }

    return row;
}

private class ViewHolder {
    TextView tv_date;
    GridView rowGridView;
}
我的网格适配器代码是:

public View getView(final int position, View convertView, ViewGroup parent) {

    if (convertView == null) {
        LayoutInflater mInflater = ((Activity) getContext()).getLayoutInflater();
        convertView = mInflater.inflate(R.layout.row_sorted_image_gridview_item, parent, false);

    }
    view = convertView;
    final SquareImageView imageView = (SquareImageView) view.findViewById(R.id.iv_test_row_grid_img);

    final ImageView iv_checked = (ImageView) view.findViewById(R.id.iv_checked);
    final ImageView iv_unChecked = (ImageView) view.findViewById(R.id.iv_unchecked);

    view.setTag(arrList.get(position).toString());

    File f = new File(arrList.get(position).toString());
    System.out.println("arrList size >>" + arrList.size());
    Picasso.with(context).load(Uri.fromFile(f)).resize(100, 100).centerCrop().placeholder(R.drawable.ic_launcher)
            .error(R.drawable.ic_close_black).into(imageView);
我刚刚设置了网格视图图像。现在我设置了imageview,单击ivent并添加复选标记,然后在两个位置添加复选标记事件,然后向下滚动,然后可见

什么是错误的,以及如何将图像视图的单击事件设置为唯一。 最后,我想设计一款看起来像谷歌“照片”的应用程序。
向我推荐任何示例或库:

首先,您应该创建一个
POJO
,如下所示

public class AlbumItem {
    private String headerStr;
    private List<ChildItem> children;

    //getter - setter....
    public class ChildItem {
        private String childName;
        private boolean isSelected;

        //getter - setter.....
    }
}
公共类项目{
私人线头;
私人名单儿童;
//getter-setter。。。。
公共类子项{
私有字符串childName;
私人选举;
//getter-setter。。。。。
}
}
现在在主适配器中使用此
POJO

在第二个适配器句柄中,选择逻辑意味着如果
isSelected
为真,则显示
iv_checked
,否则显示
iv_checked

如果你需要进一步解释,请告诉我


希望它能帮助你

首先,您应该创建一个
POJO
,如下所示

public class AlbumItem {
    private String headerStr;
    private List<ChildItem> children;

    //getter - setter....
    public class ChildItem {
        private String childName;
        private boolean isSelected;

        //getter - setter.....
    }
}
公共类项目{
私人线头;
私人名单儿童;
//getter-setter。。。。
公共类子项{
私有字符串childName;
私人选举;
//getter-setter。。。。。
}
}
现在在主适配器中使用此
POJO

在第二个适配器句柄中,选择逻辑意味着如果
isSelected
为真,则显示
iv_checked
,否则显示
iv_checked

如果你需要进一步解释,请告诉我

希望它能帮助你