一,自定义class类
public class AddJianView extends LinearLayout {
private OnAddJianListenner listenner;
private EditText num;
//自定义一个接口
interface OnAddJianListenner {
void onAddClick(View view);
void onJianClick(View view);
}
//set方法
public void setOnAddJianClickListenner(OnAddJianListenner listenner) {
if (listenner != null) {
this.listenner = listenner;
}
}
public AddJianView(Context context) {
this(context, null);
}
public AddJianView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public AddJianView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView(context, attrs, defStyleAttr);
}
private void initView(Context context, AttributeSet attrs, int defStyleAttr) {
View.inflate(context, R.layout.add_jian, this);
Button add = (Button) findViewById(R.id.add);
Button jian = (Button) findViewById(R.id.jian);
num = (EditText) findViewById(R.id.num);
//获取xml中的名字 typedArray是个数组
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.AddJianViewStyle);
//
String left = typedArray.getString(R.styleable.AddJianViewStyle_left_add);
String right = typedArray.getString(R.styleable.AddJianViewStyle_right_jian);
String middle = typedArray.getString(R.styleable.AddJianViewStyle_middle_ed);
int color = typedArray.getColor(R.styleable.AddJianViewStyle_left_color, Color.BLACK);
//添加属性
add.setTextColor(color);
add.setText(right);
jian.setText(left);
num.setText(middle);
typedArray.recycle();
//
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
listenner.onAddClick(view);
}
});
//
jian.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
listenner.onJianClick(view);
}
});
}
//对外提供设置EditTExt值的方法
public void setNumber(int number) {
Log.e("===========", number + "");
if (number > 0) {
num.setText(number + "");
}
}
//提供一个拿到原来的值的方法
public int getNumber() {
String numStr = num.getText().toString().trim();
int number = Integer.valueOf(numStr);
return number;
}
}
二.在布局中调用自定义view
<com.bwei.www.zuheview.AddJianView
android:id="@+id/view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:left_add="减"
app:left_color="#00ff00"
app:middle_ed="3"
app:right_jian="加"></com.bwei.www.zuheview.AddJianView>
三.MainActivity
adView = (AddJianView) findViewById(R.id.view);
adView.setOnAddJianClickListenner(new AddJianView.OnAddJianListenner() {
//加号
@Override
public void onAddClick(View view) {
Log.e("-=-=-=-=-=-","执行");
//点击加号加加
int number = adView.getNumber();
number++;
adView.setNumber(number);
}
//减号
@Override
public void onJianClick(View view) {
int number = adView.getNumber();
number--;
adView.setNumber(number);
}
});