android 自定义视图属性及获取
在开发 android 应用程序时,常常需要扩展 textview 的功能并添加自定义属性以满足特定需求。本文将介绍如何定义、设置和获取 textview 的自定义属性。
定义自定义属性
自定义属性需要在 attrs.xml 文件中定义。在 res/values/attrs.xml 文件中,添加以下代码:
<resources> <declare-styleable name="customtextview"> <attr name="value" format="string" /> </declare-styleable> </resources>
这里的 customtextview 是自定义属性集合的名称,value 是一个字符串类型的自定义属性。
设置自定义属性值
要在 xml 布局文件中设置自定义属性值,请在相应视图中使用 app:value 属性。例如:
<textview style="@style/fragment_home_drawer_search_item_text" android:text="18-25" app:value="18-25" />
这里,app:value 属性的值为 “18-25″。
获取自定义属性值
要获取自定义属性值,可以使用 typedarray 类:
fun ageItemClickHandle(view: View) { if (view is TextView) { val textView = view as TextView val typedArray = context.obtainStyledAttributes(textView, R.styleable.CustomTextView) val value = typedArray.getString(R.styleable.CustomTextView_value) typedArray.recycle() // ... } }
这里的 context 是活动的上下文,r.styleable.customtextview 是指向自定义属性集合的引用,value 是获取到的自定义属性值。