这是我的适配器类
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/