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;

}

}

感谢您的帮助 !

4

3 回答 3

1

根据我的经验,你总是需要放在else后面if

所以你需要类似的东西

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
}
于 2012-10-22T10:24:03.973 回答
1

您也应该将按钮设置GONE

 if (position==0){ 
    view.changeQuantity.setVisibility(View.VISIBLE);
 } else 
    view.changeQuantity.setVisibility(View.GONE);
于 2012-10-22T10:24:54.907 回答
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);

}
于 2012-10-22T10:24:21.770 回答