【问题标题】:android gridview child click listener with removing view带有删除视图的android gridview子点击监听器
【发布时间】:2011-12-19 14:01:45
【问题描述】:

我已经实现了一个带有自定义适配器的gridview,并且适配器膨胀了一个布局并在gridview的每个元素中显示了两个项目。一个是图像视图,另一个是关闭按钮,它位于图像的右上方。我的问题是当我单击十字按钮时从网格中删除元素。我必须触发两个图像的事件。所以我计划在适配器内提供关闭按钮事件。最后它可以工作,但我无法删除点击的位置。每当我单击关闭按钮图像时,它都会从我的数组列表中删除最后一个元素。请帮助我。

我的代码如下:

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

    View MyView = convertView;



    pos=position;
    positionForCheck =(Object) pos;
    if (convertView == null)
    {           

        LayoutInflater li = (LayoutInflater) MyContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        MyView = li.inflate(R.layout.grid_item_for_bag, null);


        // Add The Image!!!
        ImageView imageSrc = (ImageView) MyView.findViewById(R.id.grid_item_bag_image);

        ImageView imageClose = (ImageView) MyView.findViewById(R.id.grid_item_bag_close);


    }   

    imageSrc.setImageResource(MyList.get(position));


    imageClose.setImageResource(R.drawable.closeicon_31x31);
    imageClose.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {   

                                    MyList.remove(position)
                notifyDataSetChanged();
            }
        });


    return MyView;
}

【问题讨论】:

    标签: android gridview click listener


    【解决方案1】:

    我得到了输出。 代码如下所示

     @Override
    public View getView( int position, View convertView, ViewGroup parent)
    {
    
    View MyView = convertView;
    ViewHolder holder;
    
    
    pos=position;
    positionForCheck =(Object) pos;
    if (convertView == null)
    {           
    
        LayoutInflater li = (LayoutInflater) MyContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        MyView = li.inflate(R.layout.grid_item_for_bag, null);
        holder = new ViewHolder();
    
        // Add The Image!!!
        holder.imageSrc = (ImageView) MyView.findViewById(R.id.grid_item_bag_image);
    
        holder.imageClose = (ImageView) MyView.findViewById(R.id.grid_item_bag_close);
        MyView.setTag(holder);
    
    }   
     else
     {
     holder =(ViewHolder) MyView.getTag();
     }
    
    holder.imageSrc.setImageResource(MyList.get(position));
    
    holder.imageClose.setTag(position)
    holder.imageClose.setImageResource(R.drawable.closeicon_31x31);
    holder.imageClose.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {   
                int posi = Integer.parseInt(v.getTag().toString());
                MyList.remove(posi)
                notifyDataSetChanged();
            }
        });
    
    
    return MyView;
     }
    

    【讨论】:

      猜你喜欢
      • 2011-06-06
      • 2011-06-10
      • 1970-01-01
      • 1970-01-01
      • 2019-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-28
      相关资源
      最近更新 更多