自定义控件布局
<?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="wrap_content"
android:orientation="horizontal"
android:gravity="center">
<TextView
android:id="@+id/txt_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#cca19b9b"
android:padding="10dp"
android:text="-"/>
<EditText
android:id="@+id/et_number"
android:layout_width="150dp"
android:gravity="center"
android:text="1"
android:layout_height="50dp" />
<TextView
android:id="@+id/txt_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#cca19b9b"
android:padding="10dp"
android:text="+"/>
</LinearLayout>
自定义控件
public class AddDeleteView extends LinearLayout{
private OnAddDelClickListener listener;
private EditText etNumber;
//对外提供一个点击的回调接口
public interface OnAddDelClickListener{
void onAddClick(View v);
void onDelClick(View v);
}
public void setOnAddDelClickListener(OnAddDelClickListener listener){
if(listener!=null){
this.listener=listener;
}
}
public AddDeleteView(Context context) {
this(context,null);
}
public AddDeleteView(Context context, AttributeSet attrs) {
this(context, attrs,0);
}
public AddDeleteView(Context context, 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.layout_add_delete,this);
TextView txtDelete = (TextView) findViewById(R.id.txt_delete);
TextView txtAdd = (TextView) findViewById(R.id.txt_add);
etNumber = (EditText) findViewById(R.id.et_number);
// //获取样式
// TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.AddDeleteViewStyle);
// String leftText = typedArray.getString(R.styleable.AddDeleteViewStyle_left_text);
// String rightText = typedArray.getString(R.styleable.AddDeleteViewStyle_right_text);
// String middleText = typedArray.getString(R.styleable.AddDeleteViewStyle_middle_text);
// int leftTextColor = typedArray.getColor(R.styleable.AddDeleteViewStyle_left_text_color, Color.RED);
// txtDelete.setText(leftText);
// txtAdd.setText(rightText);
// etNumber.setText(middleText);
// txtDelete.setTextColor(leftTextColor);
//回收
// typedArray.recycle();
txtDelete.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
listener.onDelClick(view);
}
});
txtAdd.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
listener.onAddClick(view);
}
});
}
/**
* 对外提供设置EditText值的方法
* @param number
*/
public void setNumber(int number){
if(number>0){
etNumber.setText(number+"");
}
}
/**
* 得到控件原来的值
* @return
*/
public int getNumber(){
int number=0;
try {
String trim = etNumber.getText().toString().trim();
number = Integer.valueOf(trim);
}catch (Exception e){
number=0;
}
return number;
}
}