自定义view的加减器

来源:互联网 发布:网络女主播唱的男人花 编辑:程序博客网 时间:2024/05/29 16:22
public class AddDleneteView extends LinearLayout {    private OnAddDelClickListener listener;    public 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 AddDleneteView(Context context) {        this(context,null);    }    public AddDleneteView(Context context, AttributeSet attrs) {        this(context, attrs,0);    }    public AddDleneteView(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.jiajianqi,this);        //获取控件        TextView txtDelete=findViewById(R.id.txt_delete);        TextView txtAdd=findViewById(R.id.txt_add);        etNumber = findViewById(R.id.et_number);        TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.AddDeleteViewStyle);        String leftText = typedArray.getString(R.styleable.AddDleneteView_left_text);        String rightText = typedArray.getString(R.styleable.AddDleneteView_right_text);        String middleText = typedArray.getString(R.styleable.AddDleneteView_middle_text);        int color = typedArray.getColor(R.styleable.AddDleneteView_left_text_color, Color.BLACK);        txtDelete.setText(leftText);        txtAdd.setText(rightText);        etNumber.setText(middleText);        txtDelete.setTextColor(color);        //回收        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);            }        });    }    //对外提供一个修改数字的方法    public void setNumber(int number){        if(number>0){            etNumber.setText(number+"");        }    }    //对外提供一个获取当前数字的方法    public int getNumber(){        String string = etNumber.getText().toString();        int i = Integer.parseInt(string);        return i;    }}//attrs
<?xml version="1.0" encoding="utf-8"?><resources>    <declare-styleable name="AddDleneteView">        <attr name="left_text" format="string"></attr>        <attr name="right_text" format="string"></attr>        <attr name="middle_text" format="string"></attr>        <attr name="left_text_color" format="color"></attr>    </declare-styleable>    <declare-styleable name="AddDeleteViewStyle"></declare-styleable></resources>//布局
<?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="match_parent"    android:orientation="horizontal"    >    <TextView        android:id="@+id/txt_delete"        android:layout_width="30dp"        android:layout_height="30dp"        android:text="-"        android:gravity="center"        android:background="#8b948b"/>    <EditText        android:id="@+id/et_number"        android:layout_marginTop="2dp"        android:layout_width="50dp"        android:layout_height="30dp"        android:background="#f2efef"        android:gravity="center"        android:text="1"        android:inputType="number"        />    <TextView        android:id="@+id/txt_add"        android:layout_width="30dp"        android:layout_height="30dp"        android:text="+"        android:gravity="center"        android:background="#8b948b"/></LinearLayout>


原创粉丝点击