android 绕过R文件,通过代码获取styleable的属性
16lz
2021-01-26
都知道用 context.getResources().getIdentifier 获取 id,drawable等资源id,今天遇到个问题,自定义控件中要获取styleable,不能使用R文件,但是R.styleable.rootName返回一个int[],不能用上边的方法.
解决方法 :
R.styleable.xxx 返回的 int[] 由自己来创建
定义styleable属性 :
<declare-styleable name="my"> <attr name="myTxt" format="string">attr>declare-styleable>
在View中 :
int attrId = context.getResources().getIdentifier("myTxt", "attr", context.getPackageName());TypedArray ta = context.obtainStyledAttributes(attrs, new int[]{attrId}); //替代了R.styleable.my
获取到了TypedArray对象 , 然后 :
int styleableAttr = context.getResources().getIdentifier("my_myTxt", "styleable", context.getPackageName());String txt = ta.getString(styleableAttr);就获取到了xml中对应的数据.
更多相关文章
- 开源中国客户端源码阅读笔记
- listview列表控件的快速滚动滑块
- android6.0 Phone源码分析之Phone适配过程
- Android开发实践 ContentProvider和ContentResolver
- android的popupwindow点击返回按钮关闭
- Android(安卓)Property动画——ObjectAnimator使用
- Android: 记一个关于获取输入法弹起高度的新方式
- Android(安卓)使用ThumbnailUtils类获取视频的缩略图
- android/ophone中本机号码的获取