MVP二级购物车布局和简单逻辑

布局用到组合控件,适配器展示RecyclerView

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.bwie.d.yuekaogouwu1.MainActivity"
    android:orientation="vertical">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycle"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="0dp"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:orientation="horizontal">

        <CheckBox
            android:id="@+id/quanxuan"
            android:layout_weight="0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:text="全选"/>

        <LinearLayout
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:text="总价"
                android:id="@+id/zong"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

            <TextView
                android:text="数量"
                android:id="@+id/liang"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>

        <Button
            android:text="去结算"
            android:layout_weight="0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>

</LinearLayout>


适配器的布局文件引入组合控件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <CheckBox
            android:id="@+id/shop_check"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <TextView
            android:id="@+id/shop_name"
            android:textSize="20sp"
            android:text="商户名称"
            android:layout_marginLeft="15dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:layout_marginLeft="30dp"
        android:gravity="center_vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <CheckBox
            android:id="@+id/checkbox"
            android:layout_weight="0"
            android:layout_gravity="center_vertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <ImageView
            android:id="@+id/shopface"
            android:src="@mipmap/ic_launcher"
            android:layout_width="100dp"
            android:layout_height="100dp" />

        <LinearLayout
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="200dp"
            android:orientation="vertical">

            <TextView
                android:id="@+id/shoptitle"
                android:layout_marginLeft="10dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="商品信息"/>

            <TextView
                android:id="@+id/shopprice"
                android:layout_marginLeft="10dp"
                android:layout_marginTop="10dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#f00"
                android:text="商品价格"/>

            <com.bwie.d.yuekaogouwu1.view.PlusView
                android:id="@+id/plusView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginTop="10dp"/>

        </LinearLayout>

        <Button
            android:id="@+id/shopdel"
            android:layout_gravity="center_vertical"
            android:layout_weight="0"
            android:text="删除"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>
</LinearLayout>


组合控件

<Button
        android:id="@+id/revserse"
        android:background="@drawable/minus2"
        android:layout_width="30dp"
        android:layout_height="30dp" />

    <EditText
        android:id="@+id/content"
        android:text="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/add"
        android:background="@drawable/plus2"
        android:layout_width="30dp"
        android:layout_height="30dp" />


MainActivity的逻辑代码

public class MainActivity extends AppCompatActivity implements MyPresenter.ViewCallBack{

    private CheckBox quanxuan;
    private TextView zong;
    private TextView liang;
    private RecyclerView recyclerView;
    private MyPresenter presenter;
    private MyAdapter adapter;
    private LinearLayoutManager manager;

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

        recyclerView = (RecyclerView) findViewById(R.id.recycle);
        quanxuan = (CheckBox) findViewById(R.id.quanxuan);
        zong = (TextView) findViewById(R.id.zong);
        liang = (TextView) findViewById(R.id.liang);

        presenter = new MyPresenter(this);
        presenter.getdata();

        adapter = new MyAdapter(MainActivity.this);
        manager = new LinearLayoutManager(MainActivity.this,LinearLayoutManager.VERTICAL,false);
        recyclerView.setLayoutManager(manager);
        recyclerView.setAdapter(adapter);

        adapter.setListener(new MyAdapter.UpdateUiListener() {
            @Override
            public void setTotal(String total, String num, boolean allcheck) {
                zong.setText(total);
                liang.setText(num);
                quanxuan.setChecked(allcheck);
            }
        });

        quanxuan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                adapter.selectAll(quanxuan.isChecked());
            }
        });

    }

    @Override
    public void success(GetBean getBean) {

    adapter.add(getBean);
    }

    @Override
    public void failure(Exception e) {

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        presenter.detach();
    }


组合控件的逻辑代码


public class PlusView extends LinearLayout{

    private EditText editText;
    private Button add;
    private Button revserse;
    private int mCount = 1;

    public PlusView(Context context) {
        super(context);
    }

    public PlusView(Context context, AttributeSet attrs) {
        super(context, attrs);

        View view = View.inflate(context, R.layout.layout_recy, null);
        editText = (EditText) view.findViewById(R.id.content);
        add = (Button) view.findViewById(R.id.add);
        revserse = (Button) view.findViewById(R.id.revserse);

        add.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                String trim = editText.getText().toString().trim();
                int count = Integer.valueOf(trim)+1;
                mCount = count;
                editText.setText(count+"");
                if(linsenter !=null){
                    linsenter.click(count);
                }
            }
        });


        revserse.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                String trim = editText.getText().toString().trim();
                int count = Integer.valueOf(trim);
                if(count>1){
                    count--;
                    mCount = count;
                    editText.setText(count+"");
                }
                if(linsenter!=null){
                    linsenter.click(count);
                }

            }
        });

        addView(view);
    }

    public void setEditView(int num){
        if(editText!=null){
            editText.setText(num+"");
        }
    }

    public PlusView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
    ClickLisenter linsenter;
    public void setLinsenter(ClickLisenter linsenter){
        this.linsenter = linsenter;
    }


    public interface ClickLisenter{
        public void click(int count);
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值