2016-04-22 57 views
3

这是我的适配器类当选择GridView的项目/未选择在Android中使用自定义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布局,并在选中的行上显示。现在在我选择下一行的情况下,它不隐藏前一行.layout仍然显示在我选择的所有行上。

请帮我弄清楚这个problem..any帮助将先进的理解..

+0

大家好plsss帮我理清这个问题... – Anand

回答

0
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(); 

    } 

    }); 
相关问题