Android.自定义控件的实现(3)

来源:未知 责任编辑:责任编辑 发表时间:2015-10-08 14:15 点击:

                 R.styleable.RadioButton);
   this.mValue = a.getString(R.styleable.RadioButton_value);
   a.recycle();
 

 

            TypedArray其实就是一个存放资源的Array,首先从上下文中获取到R.styleable.RadioButton这个属性资源的资源数组。attrs是构造函数传进来,应该就是对应attrs.xml文件。a.getString(R.styleable.RadioButton_value);这句代码就是获取attrs.xml中定义的属性,并将这个属性的值传给本控件的mValue.最后,返回一个绑定结束的信号给资源:a.recycle();绑定结束。

 

              5、在xml中对控件赋初始值。

             请看第2点,绑定结束后可以在需要赋初始值的地方赋值。

 

 <ScrollView android:layout_width="fill_parent"
 android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:fsms=http://schemas.android.com/apk/res/org.kandy>

            <org.kandy.view.RadioButton android:id="@id/isPayDepositTrue" fsms:value="true"
      android:layout_width="wrap_content" android:layout_height="wrap_content"
      android:text="@string/yes" android:textSize="18sp">
     </org.kandy.view.RadioButton>

</ScrollView>

 

            红色部分首先声明命名空间。命名空间为fsms.路径是http://schemas.android.com/apk/res/这一部分是不变的,后面接的是R的路径:org.kandy.R。然后在自定义控件的xml描述中就可以这样使用fsms:value="true"。这样就实现了自定义控件的初始化赋值。

 

             6、RadioGroup、RadioButton组合控件的实现

                  上面是自定义控件的实现,下面将要说的是组合控件的实现。在组合控件中,最经常用到的应该就是RadioGroup和RadioButton。RadioButton的实现已经在上面介绍了。下面要介绍RadioGroup的自定义控件和功能扩展:

                    代码如下:

 

 public class RadioGroup extends android.widget.RadioGroup {

 private String mValue;
 
 public RadioGroup(Context context, AttributeSet attrs) {
  super(context, attrs);
 }

 public RadioGroup(Context context) {
  super(context);
 }
 // 设置子控件的值
 public void setChildValue(){

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Android 完全退出程序
  • android 屏幕保护
  • 原创:Android应用开发-Andorid歌词秀,含源码
  • 众多Android 开源项目推荐,给力工作给力学习
  • Android成长的幕后推手:工程师鲁宾
  • Android歌词秀1.5版
  • MIUI:10个亮点及5处不足
  • 自己开发计算器(4)-完成!源代码公开!
  • Android开发者指南(29) —— USB Host and Accessory
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1