【发布时间】:2017-05-11 15:08:41
【问题描述】:
我的应用中有一个购物车,我一直想知道如何从列表视图中的文本视图中获取值的总和,然后将其显示在另一个类中?
那个orderTotal数组就是每行产品的数量
这是我的适配器类:
public class ListCartAdapter extends BaseAdapter {
private Context context;
private ArrayList<String> orderTotal;
public ListCartAdapter(Context context, ArrayList<String> orderTotal){
this.context = context;
this.orderTotal = orderTotal;
}
@Override
public int getCount() {
return orderName.size();
}
@Override
public Object getItem(int position) {
return orderName.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final cartDatabaseHelper db = new cartDatabaseHelper(context);
final View listView;
final LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
listView = inflater.inflate(R.layout.cart_list_item, null);
TextView total = (TextView) listView.findViewById(R.id.textOrderTotal);
total.setText(orderTotal.get(position));
return listView;
}
这是 MainActivity 类:
//CART LISTVIEW
private ArrayList<String> orderid;
private ArrayList<String> orderName;
private ArrayList<String> orderSize;
private ArrayList<String> orderQuantity;
private ArrayList<String> orderTotal;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cart);
//CART LISTVIEW
orderid = new ArrayList<>();
orderName = new ArrayList<>();
orderSize = new ArrayList<>();
orderQuantity = new ArrayList<>();
orderTotal = new ArrayList<>();
TextView textTotal = (TextView) findViewById(R.id.textOrderSumTotal);
ListView listView = (ListView) findViewById(R.id.listView);
ListCartAdapter adapter = new ListCartAdapter(cart.this, orderid, orderName, orderSize, orderQuantity, orderTotal);
listView.setAdapter(adapter);
Cursor data = db.getListContents();
if(data.getCount() == 0){
btnCheckout.setVisibility(View.GONE);
}
else
{
btnCheckout.setVisibility(View.VISIBLE);
data.moveToFirst();
do{
orderid.add(data.getString(0));
orderName.add(data.getString(1));
orderSize.add(data.getString(2));
orderQuantity.add(data.getString(3));
orderTotal.add(data.getString(4));
} while (data.moveToNext());
}
data.close();
listView.setEmptyView(findViewById(R.id.emptyView));
}
textTotal 是我计划显示列表视图中值的总和的地方。
谁能指出我正确的方向?提前致谢!
【问题讨论】:
-
什么是orderTotal数组列表?
-
抱歉,我忘记解释了。 orderTotal 是listview中每个产品的数量sir
-
总计是什么意思?是物品的总数量吗?或没有。产品?
-
我建议你为订单创建一个 bean 类...这将是一个更好的方法...否则@kaushal28 的答案是正确的
-
是的,没错
标签: android listview android-adapter