将数据从自定义适配器传递到另一个活动

时间:2017-01-06 04:13:15

标签: android listview

我有一个列表视图,其中包含价格的项目。我的列表视图还有一个删除按钮。我还在布局的底部有一个textview,它不是listview的一部分,它显示了总金额。我可以从列表视图中成功删除该项目。我想要的是,当项目被删除时,总金额也会改变。

这是我的适配器的一部分,我必须做一些动作

 holder.del.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View v) {
          remove(getItem(position));
     }
});

这是我的活动,其中找到了我的文本数量视图。

public class Cart extends MainActivity {

TextView amount_total;
ListView cartList;
CartCustomAdapter cartCustomAdapter;
String name, price;
static ArrayList<Order> cartArray = new ArrayList<Order>();

static Double total_amount = 0.00d;
static Double temp = 0.00d;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_cart);

    amount_total = (TextView) findViewById(R.id.total_tv);
    Bundle bundle = getIntent().getExtras();
    Button checkout =  (Button) findViewById(R.id.check_out);
    Button add_item = (Button) findViewById(R.id.add_item);
        name = bundle.getString("i_name");
        price = bundle.getString("i_price");
        temp = Double.parseDouble(price);
        total_amount = (total_amount + temp);
        amount_total.setText("Php" + total_amount.toString());
    add_item.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(Cart.this,MainActivity.class);
            startActivity(intent);


        }
    });
    cartList = (ListView) findViewById(R.id.cart_list);

    cartCustomAdapter = new CartCustomAdapter(Cart.this,R.layout.list_cart,cartArray);
    cartList.setItemsCanFocus(false);
    cartList.setAdapter(cartCustomAdapter);

    cartArray.add(new Order(name,price,"1"));

    cartCustomAdapter.notifyDataSetChanged();

}

}

2 个答案:

答案 0 :(得分:0)

使用以下方法定义界面,以更新活动中的文本视图:

updateDeletedItemCount();

并在此方法中取整数并增加其计数,如

deletedCount++;

然后在文本视图上更新它

tvDeletedCount.setText("Deleted Item Count : "+ deletedCount);

答案 1 :(得分:0)

这是最简单的方法:

//Add a method to your Cart
public void changeTotal(int totalPrice){
    if(textView != null) // set total price
}
// Call after remove an item in your listener:
if(getContext() instanceOf Cart){
    ((Cart)getContext()).changeTotal(newTotalPrice);
}

这不是最好的方法,但我认为现在还可以:)