解决方案 »

  1.   

    个人认为:
    Adapter只负责选中项目Item。每次点击完成后,在点击事件中从listView中获取选中的项目进行业务逻辑处理(计算总价),然后通过Handler发送消息给显示总价的Activity。不知是否可行?
      

  2.   

    加interface吧,adapter的setOnClickListener调用,fragment里面实现
    //adapter
    interface SumCallBack{
    public void setSum(float sum);
    }
    private SumCallBack sumCallBack;
    public ShopCartListAdapter(Context context, List<ShopCart> shopCart,SumCallBack sumCallBack) { super(context, shopCart);
    this.sumCallBack = sumCallBack;
    }
    //fragment
    mAdapter = new ShopCartListAdapter(getActivity(),
    mPresenter.getShopCart(getUserId()),new SumCallBack(){
    ........
    });
      

  3.   

    又改了下,可能括号有问题
    //adapter
    interface SumCallBack{
    public void setSum(float sum);
    }
    private SumCallBack sumCallBack;
    public ShopCartListAdapter(Context context, List<ShopCart> shopCart,SumCallBack sumCallBack) { super(context, shopCart);
    this.sumCallBack = sumCallBack;
    }
    holder.cbCheck.setOnClickListener(new OnClickListener() { @Override
    public void setSum(float sum) {

    sumText.setText(sum+"");
    }
    });
    //fragment
    mAdapter = new ShopCartListAdapter(getActivity(),
    mPresenter.getShopCart(getUserId()),new SumCallBack(){
    @Override
    public void onClick(View v) {
    .......
    sumCallBack.setSum(sum); }
    });
      

  4.   

    粘贴错了....看这里
    //adapter
    interface SumCallBack{
    public void setSum(float sum);
    }
    private SumCallBack sumCallBack;
    public ShopCartListAdapter(Context context, List<ShopCart> shopCart,SumCallBack sumCallBack) { super(context, shopCart);
    this.sumCallBack = sumCallBack;
    }
    holder.cbCheck.setOnClickListener(new OnClickListener() { @Override
    public void onClick(View v){
    ........
    sumCallBack.setSum(sum);

    }
    });
    //fragment
    mAdapter = new ShopCartListAdapter(getActivity(),
    mPresenter.getShopCart(getUserId()),new SumCallBack(){
    @Override
    public void setSum(float sum)  {

    sumText.setText(sum+"");
    }
    });
      

  5.   

    看着有点复杂,个人认为:
    Adapter只负责记录哪个选中,哪个没选中,价格多少等数据信息。
    每次点击之后更改adapter的数据信息,然后查询adapter 的数据进行业务逻辑处理(计算总价),设置要显示总价数据的View。
      

  6.   

    你可以这样做,首先用一个map来保存选中项的位置以及对应的数量,键保存每一项position,值保存这一项选了多少数量,每次增加减少对这个map操作,并回调通知activity重新计算总价显示
      

  7.   

         有两种:1、可以用回调的方式,通过点击事件来判断是否选中,然后来加减TotalPrice。
                          2、adapter在new实例的时候,会传个context,通过context可以在adapter中的chBox点击事件里面把这一行的商品price设置到你的activity中。通过(MainActivity)context).你定义的方法。可以加上这个商品的价格,也可以减去这个商品的价格。