android之自定义组合控件

---------------setting_item---------------



    

    
    //下面的focusable和clickable是chekbox天生就有的属性,点击的优先级比组合控件高,所以吧组合控件设置了点击事件,就药吧checkbox的点击事件去掉
    


/**
 * Created by lambo on 2018/4/15.
 * 自定义组合控件---多个控件组成,可以复用
 */

public class Setting_item extends RelativeLayout {
CheckBox cb;
    private TextView tv_subtile;
    private TextView tv_title;
    private String descoff;
    private String descon;
    private String title;

    //带一个参数的构造方法,初始化布局文件的时候调用
    public Setting_item(Context context) {
        super(context);
        initView(context);
    }

    private void initView(Context context) {
        //吧布局文件转换成view
        View.inflate(context, R.layout.setting_item, this);
        cb=findViewById(R.id.ck_setting_item);
        tv_subtile = findViewById(R.id.tv_setting_item_subtitle);
        tv_title = findViewById(R.id.tv_settting_item_title);
    }
/*带两个参数的构造方法,布局文件使用的时候调用*/
    public Setting_item(Context context, AttributeSet attrs) {
        super(context, attrs);
        initView(context);
        //获取命名空间(http://schemas.android.com/apk/res-auto)下的属性title,descon,descoff,在attr.xml中给textview中扩展了属性
        title = attrs.getAttributeValue("http://schemas.android.com/apk/res-auto","title");
        descon = attrs.getAttributeValue("http://schemas.android.com/apk/res-auto","descon");
        descoff = attrs.getAttributeValue("http://schemas.android.com/apk/res-auto","descoff");
        tv_title.setText(title);
    }

    public Setting_item(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        initView(context);
    }
//检验组合控件是否选中
    public Boolean isChecked(){

        return cb.isChecked();
    }

    //设置组合控件
    public void setChecked(Boolean isChecked){
        if(isChecked){
            setSubtile(descon);
        }else {
            setSubtile(descoff);
        }
        cb.setChecked(isChecked);
    }

    //设置组合控件自标题的方法
    public void setSubtile(String  subtilte){

tv_subtile.setText(subtilte);
    }
}

---------------------res/values/attr.xml-----------------添加属性




    //给自定义的组合控件Setting_item扩展属性
    
        
        
        
    




你可能感兴趣的:(android)