android自定义view控件和自定义更改控件内容

来源:互联网 发布:连线服务的网络提供商 编辑:程序博客网 时间:2024/06/05 15:19
package com.example.customview;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Color;import android.support.annotation.Nullable;import android.util.AttributeSet;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.LinearLayout;import android.widget.TextView;/** * Created by Administrator on 2017/11/1 0001. *///自定义的类用于继承LinearLayoutpublic class AddDeleteActivity extends LinearLayout{    private TextView tv_delete;    private TextView tv_add;    private EditText et_number;    private OnAddDeleteClickListen listen;    private Button btn_mine;    //写接口用于调用这里面的方法    interface OnAddDeleteClickListen{        void addClick(View v);        void deleteClick(View v);    }    //将实现接口与参数listen绑定到一起    public void setOnAddDeleteClickListen(OnAddDeleteClickListen listen)    {        this.listen = listen;    }    public AddDeleteActivity(Context context) {        this(context,null);    }    public AddDeleteActivity(Context context, @Nullable AttributeSet attrs) {        this(context, attrs,0);    }    public AddDeleteActivity(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.car_add_delete,this);        tv_add = (TextView)findViewById(R.id.tv_add);        tv_delete = (TextView)findViewById(R.id.tv_delete);        et_number = (EditText)findViewById(R.id.et_number);        btn_mine = (Button)findViewById(R.id.btn_mine);        tv_add.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View view) {                listen.addClick(view);            }        });        tv_delete.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View view) {                listen.deleteClick(view);            }        });        TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.AddDeleteStyle);        String left_text = typedArray.getString(R.styleable.AddDeleteStyle_left_text);        String right_text = typedArray.getString(R.styleable.AddDeleteStyle_right_text);        String center_text = typedArray.getString(R.styleable.AddDeleteStyle_center_text);        int color = typedArray.getColor(R.styleable.AddDeleteStyle_btn_custom, Color.BLUE);        tv_add.setText(right_text);        tv_delete.setText(left_text);        typedArray.recycle();    }    public int getNumber()    {        String trim = et_number.getText().toString().trim();        int integer = Integer.valueOf(trim);        return integer;    }    public void setNumber(int number)    {        Log.e("----","李海生"+number);        if(number<0)        {            et_number.setText(0+"");        }else        {            et_number.setText(number+"");        }    }}
//在values中自定义的类型
<?xml version="1.0" encoding="utf-8"?><resources>    <declare-styleable name="AddDeleteStyle">        <attr name="left_text" format="string"/>        <attr name="right_text" format="string"/>        <attr name="center_text" format="string"/>        <attr name="btn_custom" format="color"/>    </declare-styleable></resources>

//在主方法的布局中调用自定义View
 
<?xml version="1.0" encoding="utf-8"?><LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:orientation="vertical"    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"    android:layout_height="match_parent" tools:context="com.example.customview.MainActivity">    <com.example.customview.AddDeleteActivity        android:id="@+id/ada"        android:layout_width="match_parent"        app:right_text="加"        app:left_text="减"        android:layout_height="wrap_content"/></LinearLayout>
原创粉丝点击