gpt4 book ai didi

android - 在 Activity 中单击按钮时使 View 在 ListView 行中可见

转载 作者:搜寻专家 更新时间:2023-11-01 08:37:43 24 4
gpt4 key购买 nike

在我的 Activity 中,我有一个编辑按钮和它下面的 ListView 。我想要的是当我点击编辑按钮时,每行的删除图标应该变得可见。我对如何更新适配器一无所知,以便它会在每一行中显示删除图标。这是我的适配器代码。

    public class CartAdapter extends ArrayAdapter<CartBean> {
private final ArrayList<CartBean> cartBeans;
DecimalFormat df = new DecimalFormat("#.##");
public CartAdapter(Context context, ArrayList<CartBean> beans) {
super(context, 0, beans);
this.cartBeans = beans;
}



@Override
public View getView(int position, View convertView, ViewGroup parent) {
// final CartBean beans = getItem(position);

View view = convertView;
final ViewHolder viewHolder;

if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

view = inflater.inflate(R.layout.list_cart_row, parent, false);

viewHolder = new ViewHolder();

viewHolder.row_price = (TextView) view.findViewById(R.id.row_price);
viewHolder.row_quantity = (TextView) view.findViewById(R.id.cart_quantity);
viewHolder.row_item_name = (TextView) view.findViewById(R.id.row_item_name);
// viewHolder.rastaurantoffer = (ImageView) view.findViewById(R.id.rastaurantname2);


view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.row_price.setText(String.valueOf(df.format(Double.parseDouble(cartBeans.get(position).getTotal_price()) * cartBeans.get(position).getQuantity())));
viewHolder.row_quantity.setText(String.valueOf(cartBeans.get(position).getQuantity()));
viewHolder.row_item_name.setText(cartBeans.get(position).getItem_name());
//viewHolder.tv_quantity.setText("0");
// viewHolder.total_price.setText(restaurant.getRestaurantTimeStatus1());


return view;
}

class ViewHolder {

TextView row_quantity,row_item_name;
TextView row_price;

}
}

这是 Activity 代码

public class ActivityCart extends AppCompatActivity {
ListView lv_cart;
LinearLayout lin_cart;
TextView tv_sub_total;
double total=0.0;
Button btn_delivery,btn_edit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cart_details);
lv_cart= (ListView) findViewById(R.id.lv_cart);
lin_cart= (LinearLayout) findViewById(R.id.lin_cart);
lin_cart.setVisibility(View.GONE);
tv_sub_total= (TextView) findViewById(R.id.tv_sub_total);
btn_delivery= (Button) findViewById(R.id.btn_delivery);
btn_edit= (Button) findViewById(R.id.btn_edit);
DecimalFormat df = new DecimalFormat("#.##");
CartAdapter cartAdapter=new CartAdapter(ActivityCart.this, AppConstants.cartBeanArrayList);
lv_cart.setAdapter(cartAdapter);
//setListViewHeightBasedOnChildren(lv_cart);
for (int i=0;i<AppConstants.cartBeanArrayList.size();i++)
{
String price=AppConstants.cartBeanArrayList.get(i).getTotal_price().substring(3, AppConstants.cartBeanArrayList.get(i).getTotal_price().length());
total=total + (Double.parseDouble(AppConstants.cartBeanArrayList.get(i).getTotal_price())*AppConstants.cartBeanArrayList.get(i).getQuantity());
}
double totPrice=0.0;
// totPrice=df.format(total);
tv_sub_total.setText("Rs. "+df.format(total));
btn_delivery.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent in=new Intent(ActivityCart.this,ActivityLogin.class);
startActivity(in);
}
});
}

}

如有任何帮助,我们将不胜感激。

最佳答案

在你的适配器中取一个 bool 值 isDeleteRequired 并为它创建一个 setter。

public class CartAdapter extends ArrayAdapter<CartBean> {
private final ArrayList<CartBean> cartBeans;
private boolean isDeleteRequired;
DecimalFormat df = new DecimalFormat("#.##");
public CartAdapter(Context context, ArrayList<CartBean> beans) {
super(context, 0, beans);
this.cartBeans = beans;
}



@Override
public View getView(int position, View convertView, ViewGroup parent) {
// final CartBean beans = getItem(position);

View view = convertView;
final ViewHolder viewHolder;

if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

view = inflater.inflate(R.layout.list_cart_row, parent, false);

viewHolder = new ViewHolder();

viewHolder.row_price = (TextView) view.findViewById(R.id.row_price);
viewHolder.row_quantity = (TextView) view.findViewById(R.id.cart_quantity);
viewHolder.row_item_name = (TextView) view.findViewById(R.id.row_item_name);
// viewHolder.rastaurantoffer = (ImageView) view.findViewById(R.id.rastaurantname2);


view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.row_price.setText(String.valueOf(df.format(Double.parseDouble(cartBeans.get(position).getTotal_price()) * cartBeans.get(position).getQuantity())));
viewHolder.row_quantity.setText(String.valueOf(cartBeans.get(position).getQuantity()));
viewHolder.row_item_name.setText(cartBeans.get(position).getItem_name());
//viewHolder.tv_quantity.setText("0");
// viewHolder.total_price.setText(restaurant.getRestaurantTimeStatus1());
if(isDeleteRequired){
viewHolder.deleteButton.setVisibility(View.VISIBLE);
}else{
viewHolder.deleteButton.setVisibility(View.GONE);
}

return view;
}
public boolean setIsDateRequired(boolean isdaterequired){
isDateRequired = isdaterequired;
}
class ViewHolder {

TextView row_quantity,row_item_name;
TextView row_price;
Button deleteButton;

}
}

现在在您的 Activity 中,您需要在单击编辑按钮时调用此方法 cartAdapter.setIsDateRequired(true)。然后执行 cartAdapter.notifyDataSetChanged();

这应该有效。

关于android - 在 Activity 中单击按钮时使 View 在 ListView 行中可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35376483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com