组合空间数据加减

来源:互联网 发布:户型优化设计 编辑:程序博客网 时间:2024/06/17 23:56

//xml

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout    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.example.myapplication.jiajian">    <com.example.myapplication.view.Sum        android:id="@+id/jiajian"        android:layout_width="wrap_content"        android:layout_height="wrap_content">    </com.example.myapplication.view.Sum></android.support.constraint.ConstraintLayout>

//item.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:weightSum="1">    <TextView        android:id="@+id/t1"        android:layout_width="40dp"        android:layout_height="40dp"        android:text="+"        android:gravity="center"        android:textSize="23dp"        android:background="@color/colorAccent"        />    <EditText        android:id="@+id/e"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:gravity="center"        android:text="1"        android:textSize="20dp"        />    <TextView        android:id="@+id/t2"        android:layout_width="40dp"        android:layout_height="40dp"        android:text="-"        android:gravity="center"        android:textSize="23dp"        android:background="@color/colorAccent"        /></LinearLayout>

//在res中的values中建一个名为attr.xml的文件 attr.xml

<?xml version="1.0" encoding="utf-8"?><resources>    <declare-styleable name="Sum">        <attr name="bgcolor" format="color"></attr>    </declare-styleable></resources>

//sum.class

package com.example.myapplication.view;import android.content.Context;import android.content.res.TypedArray;import android.support.annotation.Nullable;import android.util.AttributeSet;import android.view.View;import android.widget.EditText;import android.widget.LinearLayout;import android.widget.TextView;import com.example.myapplication.R;/** * Created by 123 on 2017/11/30. */public class Sum extends LinearLayout{    private final TextView t1;    private final EditText e;    private final TextView t2;    private int count=0;    private int max=10;    public Sum(Context context) {        this(context,null);    }    public Sum(Context context, @Nullable AttributeSet attrs) {        this(context, attrs,0);    }    //接口    public interface Mz{        //回调传参数        void fang(int count);    }    private Mz mz;    public void setnubList (Mz mz)    {        this.mz=mz;    }    public Sum(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        //背景颜色        TypedArray ta = context.getTheme().obtainStyledAttributes(attrs, R.styleable.Sum, defStyleAttr, 0);        int color = ta.getColor(R.styleable.Sum_bgcolor, defStyleAttr);        //新布局        View view=View.inflate(context,R.layout.item,this);        t1 = (TextView) view.findViewById(R.id.t1);        e = (EditText) view.findViewById(R.id.e);        t2 = (TextView) view.findViewById(R.id.t2);        //点击事件        t2.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View view) {                if (count>0){                    count--;                    e.setText(""+count);                    mz.fang(Integer.parseInt(e.getText().toString()));                }            }        });        t1.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View view) {                if (count<max){                    count++;                    e.setText(""+count);                    mz.fang(Integer.parseInt(e.getText().toString()));                }            }        });    }}

//mainactivity

package com.example.myapplication;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Toast;import com.example.myapplication.view.Sum;public class jiajian extends AppCompatActivity {   private Sum jiajian;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_jiajian);        jiajian = (Sum)findViewById(R.id.jiajian);        jiajian.setnubList(new Sum.Mz() {            @Override            public void fang(int count) {                Toast.makeText(jiajian.this,"购物车数量变化"+count,Toast.LENGTH_LONG).show();            }        });    }}
原创粉丝点击