都知道用 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中对应的数据.   
   
   





更多相关文章

  1. 开源中国客户端源码阅读笔记
  2. listview列表控件的快速滚动滑块
  3. android6.0 Phone源码分析之Phone适配过程
  4. Android开发实践 ContentProvider和ContentResolver
  5. android的popupwindow点击返回按钮关闭
  6. Android(安卓)Property动画——ObjectAnimator使用
  7. Android: 记一个关于获取输入法弹起高度的新方式
  8. Android(安卓)使用ThumbnailUtils类获取视频的缩略图
  9. android/ophone中本机号码的获取

随机推荐

  1. Visual Studio 2015正式发布下载 个人免
  2. Android学习11-----多媒体技术(5) 媒体录
  3. Android(安卓)GridView 滑动条设置一直显
  4. Android中的Intent Filter匹配规则介绍
  5. 定义Window进入和退出效果(及Window,Activ
  6. android activity启动过程分析
  7. Android(安卓)五大存储方式详解
  8. android studio配置Terminal命令窗口
  9. PhotoView的使用
  10. 【Android(安卓)Developers Training】 9