我有一個Gridview和自定義適配器。更改Gridview項目的可見性
在我的適配器中,我有一個靜態ViewHolder實例。
static class ViewHolder
{
TextView _model,tPrice,pPrice;
ImageView picture;
}
這是我的ViewHolder。當用戶點擊片段中的按鈕時,我只想讓tPrice可見性消失。 當我創建一個適配器,我爲tPrice VISIBLITY發送一個整數參數。但其數據仍然在靜態數據上。我想改變這個領域。我需要一個當前視圖的實例。我會將它投射到我的ViewHolder。這樣做後,我設置visiblity。但我該怎麼做?
這裏是getView和我的建築工
private int TFV = View.GONE;
private int PFV= View.GONE;
public ProductGridViewAdapter(Context p_context, int p_resourceId,ArrayList<Product> p_ProductList,int TFVisib,int PFVisib){
super(p_context,p_resourceId,p_ProductList);
originalItems = p_ProductList;
TFV = TFVisib;
PFV = PFVisib;
_ctx = p_context;
//....
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
View row = convertView;
if(row==null){
holder = new ViewHolder();
row = li.inflate(_resourceId, null);
holder._model = (TextView) row.findViewById(R.id.o_model);
holder.pPrice = (TextView) row.findViewById(R.id.product_pf);
holder.tPrice = (TextView) row.findViewById(R.id.product_tf);
holder.picture = (ImageView)row.findViewById(R.id.product_lv_image);
row.setTag(holder);
}else{
holder = (ViewHolder) row.getTag();
}
Product f =null;
if(originalItems!=null)
f = originalItems.get(position);
if (f != null) {
holder._model.setText(f.GetCODE());
holder.pPrice.setText(f.GetPRICE());
holder.pPrice.setVisibility(PFV);
holder.tPrice.setVisibility(TFV);
holder.tPrice.setText(f.GetCURRENCY());
File imgFile = new File(uhandler.GetProductsFolderPath()+"/BIG"+f.GetCODE()+".jpg");
if(imgFile.exists()){
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
holder.picture.setImageBitmap(myBitmap);
}
}
return row;
}
tPrice VISIBILITY是可見的okey。當我點擊按鈕,我發送數據到適配器,這個數據觸發visiblity,但我仍然可見 – Twinsens
@Twinsens更好,你發佈getView()代碼在這裏。 –
當單擊事件觸發時,適配器參數的實例將在片段上發生變化 – Twinsens