//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();
}
});
}
}