android - 如何使用自定义 BaseAdapter 在 Android 中选择/取消选择 gridView 项目时显示/隐藏布局

标签 android android-fragments gridview baseadapter

这是我的适配器类

  public class GridViewCustomAdapter extends BaseAdapter {


private List<ProductParameterBO> availList;


private LayoutInflater inflater;

Context context;

public GridViewCustomAdapter(Context ctx,List<ProductParameterBO> list){
    this.context = ctx;
    this.availList = list;
}

@Override
public int getCount() {
    return availList.size();
}

@Override
public Object getItem(int position) {
    return availList.get(position);
}

@Override
public long getItemId(int position) {
    ProductParameterBO c = availList.get(position);
   // long id = c.getTimeId();
    return 0;
}

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

    View row = convertView;
  final TeeTimeHolder holder;
    if (row == null){
        inflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        row = inflater.inflate(R.layout.grid_row,parent,false);
        holder = new TeeTimeHolder();
        holder.myImage =(ImageView)row.findViewById(R.id.imageView10);
        holder.imageflip =(ImageView)row.findViewById(R.id.img_flp);
        holder.name =(TextView)row.findViewById(R.id.textView47);
        holder.edit =(TextView)row.findViewById(R.id.textView49);
        holder.rl =(RelativeLayout)row.findViewById(R.id.grid_img_ovrly);
      //  holder.row =(RelativeLayout)row.findViewById(R.id.row);
        row.setTag(holder);
    }
    else {
        holder =(TeeTimeHolder)row.getTag();
    }

    holder.name.setText(availList.get(position).getParameterName());
    holder.myImage.setImageResource(R.drawable.toi);
    holder.rl.setVisibility(View.GONE);



    return row;
}




static class TeeTimeHolder {
    ImageView myImage,imageflip;

    TextView name,edit;

    RelativeLayout rl;
 }
}

我只想在选择行时显示 Relativelayout r1,当我选择下一行时,上一行必须隐藏 Relativelayout r1 布局并显示在选择的行上。现在在我的例子中,当我选择下一行时,然后它没有隐藏在前一行..布局仍然显示在我选择的所有行上。

请帮我解决这个问题..任何帮助将不胜感激..

最佳答案

 int priviousPosition=0;
    ArrayList<View> viewList= new ArrayList<View>();
    holder.rl.setTag(position);
    viewList.add(holder.rl);
    row.findViewById(R.id.grid_img_ovrly).setOnClickListener(new OnClickListener() {

    public void onClick(View v1) { 

    View v=viewList.get(priviousPosition);
    v.setVisibility(View.GONE);

    int postition=(Integer) v1.getTag();
    priviousPosition=postition;
    notifyDataSetChanged();

    }

    });

关于android - 如何使用自定义 BaseAdapter 在 Android 中选择/取消选择 gridView 项目时显示/隐藏布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36786171/

相关文章:

java - Android:计算哈希值的更快方法

android - 如何在 ARCore View 中定位具有纬度/经度的对象?

android - ImageView 图像未在 Eclipse + Android 上显示

java - 从 GridView 项目中获取值

android - GridView 的 CollapsingToolbarLayout 问题

Android自定义 ImageView 形状

java - findfragmentbyid 在 vi​​ewpager 下托管 3 个 fragment 的 mainActivity 中返回 null

当我重新输入 fragment 时,Android MutableLiveData 不断发出信号

java - 使用 Otto 的内存泄漏 Leakcanary 报告

gridview - 将过滤器属性添加到 Yii2 yii\grid\ActionColumn 类