请原谅我的英语我是法国人^^
所以,我对你来说是一个小问题!
我想在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 :(得分: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
}
答案 1 :(得分:1)
您应该将按钮设置为GONE
if (position==0){
view.changeQuantity.setVisibility(View.VISIBLE);
} else
view.changeQuantity.setVisibility(View.GONE);
答案 2 :(得分: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);
}