Android开发中如何自定义TextView属性并获取其值用于年龄筛选?

Android开发中如何自定义TextView属性并获取其值用于年龄筛选?

android开发中,自定义视图属性并获取其值能显著提升代码的可读性和可维护性。本文将详细介绍如何自定义TextView属性value,并演示如何在年龄筛选场景中获取该属性值。 由于android:tag属性可能被占用,我们选择自定义属性存储年龄范围信息。

首先,在res/values/attrs.xml文件中声明自定义属性(若文件不存在,需手动创建):

<resources>     <declare-styleable name="CustomTextView">         <attr name="value" format="string" />     </declare-styleable> </resources>

然后,在布局文件中使用自定义属性。app:前缀表示自定义属性:

<com.google.android.flexbox.flexboxlayout      android:onClick="@{(view) -> vm.ageitemclickhandle(view)}"      style="@style/fragment_home_drawer_flexbox">      <TextView          android:layout_marginStart="0dp"          android:text="不限"          app:value=""          style="@style/fragment_home_drawer_search_item_text"/>      <TextView          android:text="18-25"          app:value="18-25"          style="@style/fragment_home_drawer_search_item_text"/>  </com.google.android.flexbox.flexboxlayout>

最后,在代码中,通过obtainStyledAttributes方法获取自定义属性值。在点击事件处理函数ageItemClickHandle中:

public void ageItemClickHandle(View view) {     if (view instanceof TextView) {         TextView textView = (TextView) view;         TypedArray typedArray = textView.getContext().obtainStyledAttributes(textView, R.styleable.CustomTextView);         String value = typedArray.getString(R.styleable.CustomTextView_value);         typedArray.recycle();          // 使用获取到的value值     } }

通过以上步骤,即可自定义TextView属性并获取其值,实现灵活的年龄筛选功能。 记住在使用完TypedArray后调用recycle()方法释放资源。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享