//自定义View
public class jiajian extends FrameLayout implements View.OnClickListener {
private Button jia;
private Button jian;
private TextView te;
private Integer integer;
private ss ff;
//定义的一个共有的方法
public void jiajian(ss s) {
this.ff = s;
}
public jiajian(@NonNull Context context) {
this(context, null);
}
public jiajian(@NonNull Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public jiajian(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
//加载自己定义的的布局
View view = View.inflate(context, R.layout.jianjian_layout, this);
//获取加按钮并设置点击事件
jia = findViewById(R.id.jia);
jia.setOnClickListener(this);
//获取减按钮并设置点击事件
jian = findViewById(R.id.jian);
jian.setOnClickListener(this);
//获取textview的控件
te = findViewById(R.id.te);
//获取attrs文件中的所有name的集合
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.jiajian);
//获取name集合中的字体颜色的name
int color = typedArray.getColor(R.styleable.jiajian_bt_color, 0);
int color2 = typedArray.getColor(R.styleable.jiajian_bt1_color, 0xffff0000);
//获取获取name集合中的字体大小的name
int dimension = (int) typedArray.getDimension(R.styleable.jiajian_layout_width, 0);
//获取获取name集合中的背景的name
int color1 = typedArray.getColor(R.styleable.jiajian_background123,0xffff0000);
//销毁
typedArray.recycle();
//判断字体颜色的name是否等于0
if (color!=0){
//如果不等于0 给需要设置的控件设置字体颜色
jia.setTextColor(color);
}
//判断字体大小的name是否等于0
if (dimension>0){
//如果不等于0 给需要设置的控件设置字体大小
jia.setTextSize(dimension);
}
//给需要设置的控件设置背景颜色
jia.setBackgroundColor(color1);
jian.setTextColor(color2);
//jian.setTextSize(dimension);
//jian.setBackgroundColor(color1);
}
//点击事件
@Override
public void onClick(View v) {
switch (v.getId()) {
//减的方法
case R.id.jian:
//获取textview的值
int i = get();
//判断i是否为小于或等于0
if (i <= 0) {
//如果是小于或等于0就设置按钮不可用
jian.setEnabled(false);
} else {
//如果不是小于或等于0就设置按钮可用
jian.setEnabled(true);
//textview的值--
i--;
//判断i是否为小于或等于0
if (i <= 0) {
//如果是小于或等于0就设置textview的值=1
i = 1;
}
}
//给textview赋值
te.setText(i + "");
break;
//加的方法
case R.id.jia:
//获取textview的值
int i1 = get();
//判断i是否为小于或等于0
if (i1 <= 0) {
//如果是小于或等于0就设置按钮不可用
jian.setEnabled(false);
} else {
//如果不是小于或等于0就设置按钮可用
jian.setEnabled(true);
//textview的值++
i1++;
}
//给textview赋值
te.setText(i1 + "");
break;
}
}
//自己定义的接口
interface ss {
public void getcount(int count);
}
//获取textview的值得方法
public int get() {
int d = 0;
//获取textview的值
String s = te.getText().toString();
if (TextUtils.isEmpty(s)) {
d = 1;
}
return Integer.valueOf(s);
}