组合式自定义控件实现 加和减 的操作、简单的接口回调

package liyuanqi.bwie.com.zhuheshikongjian;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
ZuHe zuhe;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
zuhe =findViewById(R.id.zuhe);
zuhe.duidiaoData(new ZuHe.onUpdate() {
@Override
public void data(int values) {
Toast.makeText(MainActivity.this,values+"",Toast.LENGTH_SHORT).show();
}
});

}

}

package liyuanqi.bwie.com.zhuheshikongjian;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;

public class ZuHe extends FrameLayout implements View.OnClickListener {
private TextView mShu;
private ImageView mjian;
private ImageView madd;
private int value=0;
public ZuHe(@NonNull Context context) {
super(context,null);
}

public ZuHe(@NonNull Context context, @Nullable AttributeSet attrs) {
    super(context, attrs,0);
    initView(context);
    value = initValue();
    setValue(value);
    mjian.setOnClickListener(this);
    madd.setOnClickListener(this);
}

public ZuHe(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
}

@Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.jian:

           subnumber();
            break;
        case R.id.zheng:

            addnumber();
            break;
    }
}

private void subnumber() {
    if (value>0){
        value--;

    }
    setValue(value);
    mOnUpdate.data(value);
}

private void addnumber() {
    if (value<10){
        value++;

    }
    setValue(value);
    mOnUpdate.data(value);
}

private void initView(Context context) {
    View inflate = View.inflate(context, R.layout.kongjiang, this);
     mShu = inflate.findViewById(R.id.shu);
    mjian = inflate.findViewById(R.id.jian);
    madd = inflate.findViewById(R.id.zheng);
}
private int initValue() {
    String trim = mShu.getText().toString().trim();
    int zhi=0;
    if (!TextUtils.isEmpty(trim)){
        zhi= Integer.parseInt(trim);
    }
    return zhi;
}

public void setValue(int value) {
    mShu.setText(value+"");
}
public interface onUpdate{
    void data(int values);
}
private onUpdate mOnUpdate;
public void duidiaoData(onUpdate update){
       mOnUpdate =update;
}

}

<?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=".MainActivity">

<liyuanqi.bwie.com.zhuheshikongjian.ZuHe
android:id="@+id/zuhe"
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”></liyuanqi.bwie.com.zhuheshikongjian.ZuHe>

</android.support.constraint.ConstraintLayout>

<?xml version="1.0" encoding="utf-8"?>

<ImageView
    android:id="@+id/jian"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/goods_sub_btn"/>

<TextView
    android:id="@+id/shu"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:gravity="center"
    android:text="1"
    android:textColor="@android:color/black"
    android:textSize="20dp"
    />

<ImageView
    android:id="@+id/zheng"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/goods_add_btn"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值