自定义控件

来源:互联网 发布:php redis 并发 编辑:程序博客网 时间:2024/05/09 05:57

自定义控件:

1.先把要使用这个控件的几个条目的共性列出来,然后再创建个xml布局A,这个布局就是开始所列出的条目的共性。

 

2.创建一个类,继承自xml A所使用的布局,然后实现多种构建方法。

在public SettingItemView(Context context, AttributeSet attrs) 方法中使用attrs获取对应的在使用这个控件的布局中设定的属性(jonsonSettingTitle=”自动更新”)的值。

  在这个类中创建一个方法。用来把获得的属性值设置的到各个被抽取出来的共性条目中。

如果带有checkbox的话属性可以设置多个,然后在设置到共性条目的时候加个判断,判断当前的checkbox的状态,然后再通过这个boolean来决定要设置的是on的条目还是off的条目。

 

3.在要使用自定义控件的布局文件中使用自定义控件:

  先自定义命名空间xmlns:jonson="http://schemas.android.com/com.jonson.mysafe"

  默认的命名空间是 http://schemas.android.com/apk/res/android自定义命名空间是没有 apk/res这个的。复制粘贴的时候注意

然后自定义控件的标签就是命名空间最后一个斜杆后面的字段了。然后再加上.(2中创建的类的类名)这个需要设置widthheight 。 然后在这个标签里面就可以添加自定义的内容了。比如jonson:title = “自动更新” 这些内容最后会被2创建的类判断并赋值到当前条目上。

 

然后:自定义条目的属性是需要说明的。不让回报找不到title属性的错误。需要在values中创建一个attrs.xml的文件来说明这些属性的类型。

 

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <declare-styleable name="SettingItemView">

        <attr name="SettingTitle" format="string" />
        <attr name="desc_on" format="string" />
        <attr name="desc_off" format="string" />
    </declare-styleable>
</resources>

0 0
原创粉丝点击