WEB开发网
开发学院手机开发Android 开发 Android.自定义控件的实现 阅读

Android.自定义控件的实现

 2010-08-20 02:00:00 来源:WEB开发网   
核心提示:< declare-styleable name="RadioButton">< !-- 控件名称-->< attr name="value" format="string"/>< !-- 属性名称,类型-->&

< declare-styleable name="RadioButton">< !-- 控件名称-->

< attr name="value" format="string"/>< !-- 属性名称,类型-->

< /declare-styleable>

< /resources>

如果res下没有错误的话,在R中应该就会生成这些资源的id。这样我们就能在自定义控件中引用他们。

4、控件属性与XML定义绑定。

这下子我们又回到了自定义控件的编写上来了。先看看我们在第一点提到的红色字体部分。这一部分就是实现控件属性与XML定义绑定的代码。

/**

* 跟values/attrs.xml里面定义的属性绑定

*/

TypedArray a = context.obtainStyledAttributes(attrs,

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"。这样就实现了自定义控件的初始化赋值。

上一页  1 2 3 4  下一页

Tags:Android 定义 控件

编辑录入:coldstar [复制链接] [打 印]
赞助商链接