2012-10-22 42 views
0

對不起,我的英語我是法國人^^在列表中顯示隱藏按鈕查看

所以,我對你有一個小問題!

我想在listView中顯示一個隱藏按鈕,但是當代碼顯示所有的按鈕(不只是一個)。

看我的代碼:

public class ListViewShoplistAdapter extends BaseAdapter { 

private ArrayList<Product> listCategory; 
private Activity activity; 
private ShopList shoplist; 

public ListViewShoplistAdapter(Activity activity,ArrayList<Product> listCategory, ShopList shoplist) { 
    super(); 
    this.activity = activity; 
    this.listCategory = listCategory; 
    this.shoplist = shoplist; 
} 

public int getCount() { 
    return listCategory.size(); 
} 

public Product getItem(int position) { 
    return listCategory.get(position); 
} 

public long getItemId(int position) { 
    return position; 
} 

private class ViewHolder { 
    public TextView productName; 
    public TextView productPrice; 
    public TextView productBrand; 
    public ImageView product; 
    public Button changeQuantity; 
    public RelativeLayout background; 
} 

public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder view; 
    LayoutInflater inflator = activity.getLayoutInflater(); 

    if(convertView == null) { 
     view = new ViewHolder(); 
     convertView = inflator.inflate(R.layout.listviewshoplist, parent, false); 

     view.productName = (TextView) convertView.findViewById(R.id.name); 
     view.productPrice = (TextView) convertView.findViewById(R.id.price); 
     view.productBrand = (TextView) convertView.findViewById(R.id.brand); 
     view.changeQuantity = (Button) convertView.findViewById(R.id.changequantity); 
     view.background = (RelativeLayout) convertView.findViewById(R.id.relativeLayout1); 
     view.product = (ImageView) convertView.findViewById(R.id.imgproduct); 
     convertView.setTag(view); 
    }else { 
     view = (ViewHolder) convertView.getTag(); 
    } 

    String productName = listCategory.get(position).getName(); 
    view.productName.setText(productName); 

    if (position==0){ // JUST for the first position, display the changeQuantity button ! => Button is displayed for all rows... 
     view.changeQuantity.setVisibility(View.VISIBLE); 
    } 

    String price = String.valueOf(listCategory.get(position).getPrice())+"€"; 
    view.productPrice.setText(price); 

    return convertView; 

} 

}

謝謝您的幫助!

回答

0

在你的代碼試試這個..

if (position==0){ // JUST for the first position, display the changeQuantity button ! => Button is displayed for all rows... 
    view.changeQuantity.setVisibility(View.VISIBLE); 
} 
else // visibility gone 
{ 
    view.changeQuantity.setVisibility(View.Gone); 

} 
1

根據我的經驗,您總是需要在if之後放else

,所以你需要像

if (position==0){ // JUST for the first position, display the changeQuantity button ! => Button is displayed for all rows... 
     view.changeQuantity.setVisibility(View.VISIBLE); 
    } else { 
view.changeQuantity.setVisibility(View.INVISIBLE); // or View.GONE 
} 
1

你應該設置按鈕GONE以及

if (position==0){ 
    view.changeQuantity.setVisibility(View.VISIBLE); 
} else 
    view.changeQuantity.setVisibility(View.GONE);