自定义View加减器

//自定义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);

    }


你可能感兴趣的:(自定义View加减器)