Android_购物车实现输入加减功能

来源:互联网 发布:latex mac 编辑:程序博客网 时间:2024/05/17 22:18

效果图:特别注意:布局里面背景图使用的是自己绘制的形状图,xml文件,



自定义布局

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.bwie.sca.MainActivity">    <EditText        android:layout_width="80dp"        android:layout_height="wrap_content" />    <Button        android:id="@+id/jian"        android:layout_width="30dp"        android:layout_height="30dp"        android:layout_centerVertical="true"        android:layout_marginLeft="110dp"        android:background="@drawable/border_radius"        android:text="-"        android:textSize="24sp" />    <EditText        android:id="@+id/ed_num"        android:layout_width="80dp"        android:layout_height="wrap_content"        android:layout_centerInParent="true"        android:layout_marginLeft="70px"        android:background="@drawable/edit_border"        android:gravity="center"        android:text="1"        android:textSize="24sp" />    <Button        android:id="@+id/jia"        android:layout_width="30dp"        android:layout_height="30dp"        android:layout_centerInParent="true"        android:layout_marginLeft="12dp"        android:layout_toRightOf="@id/ed_num"        android:background="@drawable/border_radius"        android:text="+"        android:textSize="24sp" />   <!-- <TextView        android:id="@+id/jian"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:background="@color/colorAccent"        android:layout_weight="1"        android:gravity="center"        android:padding="10dp"        android:text="-"/>    <EditText        android:id="@+id/ed_num"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:gravity="center"        android:layout_weight="1"        android:text="1"/>    <TextView        android:id="@+id/jia"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:background="@color/colorAccent"        android:gravity="center"        android:layout_weight="1"        android:padding="10dp"        android:text="+"/>--></RelativeLayout>

自定义View代码

package com.bwie.sca;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Color;import android.support.annotation.Nullable;import android.util.AttributeSet;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.RelativeLayout;import static java.lang.Integer.parseInt;/** * author:Created by ZhangPengFei on 2017/11/30. */public class Shopping extends RelativeLayout implements View.OnClickListener {    private int count = 1;    private int max = 10;    private int defaultColor = Color.RED;    private EditText ed_num;    private Button jia;    private Button jian;    public Shopping(Context context) {        this(context, null);    }    public Shopping(Context context, @Nullable AttributeSet attrs) {        this(context, attrs, 0);    }    public Shopping(final Context context, @Nullable AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        //将自定义属性与当前的这个自定组合控件进行关联        TypedArray ta = context.getTheme().obtainStyledAttributes(attrs, R.styleable.Shopping, defStyleAttr, 0);        //得到集合中的背景颜色属性,如果没有,用默认的颜色        int color = ta.getColor(R.styleable.Shopping_bgcolor, defaultColor);        View view = View.inflate(context, R.layout.layout_shop, this);        jian = view.findViewById(R.id.jian);        jia = view.findViewById(R.id.jia);        ed_num = view.findViewById(R.id.ed_num);        //设置点击事件        jian.setOnClickListener(this);        jia.setOnClickListener(this);    }    public interface NumberLisner {        void callBack(int count);    }    private NumberLisner numberLisner;    public void setNumberlistener(NumberLisner numberlistener) {        this.numberLisner = numberlistener;    }    //定义一个方法,给调用者设置最大商品数量    public void setGoodsMax(int max) {        this.max = max;    }    @Override    public void onClick(View view) {        switch (view.getId()) {            case R.id.jian: {                if (Integer.parseInt(ed_num.getText().toString()) > 1) {//                    count--;                    int jians = Integer.parseInt(ed_num.getText().toString());                    ed_num.setText(""+(jians-1));                    numberLisner.callBack(Integer.parseInt(ed_num.getText().toString()));                }else {                    Log.e("qweqweqwe","宝贝已经是最小数目了");                }            }            break;            case R.id.jia:{                if (Integer.parseInt(ed_num.getText().toString()) < 10) {//                    count++;                    int jias = Integer.parseInt(ed_num.getText().toString());                    ed_num.setText(""+(jias+1));                    numberLisner.callBack(parseInt(ed_num.getText().toString()));                }else {                    Log.e("asdasd","宝贝已经达到上限了");                }            }            break;        }    }}

Activity_main布局

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.bwie.sca.MainActivity">    <com.bwie.sca.Shopping        android:id="@+id/aa"        android:layout_width="wrap_content"        android:layout_height="wrap_content"></com.bwie.sca.Shopping></RelativeLayout>

MainActivity代码

package com.bwie.sca;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {    private Shopping test;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        test = (Shopping) findViewById(R.id.aa);        test.setNumberlistener(new Shopping.NumberLisner(){            @Override            public void callBack(int count) {            }        });    }}


原创粉丝点击