android 自定义组合,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扩展属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值