为 android的系统控件添加属性
来源:互联网 发布:网络舆情试题 编辑:程序博客网 时间:2024/05/17 09:17
为 android的系统控件添加属性
在android 的开发过程如果控件需要使用自定义属性有两种方法:
一:继承原有控件,增加自定义的属性。
这个方法可以参考以下文章:
《 Android 中自定义控件和属性 (attr.xml,declare-styleable,TypedArray) 的方法和使用 》
http://blog.csdn.net/jincf2011/article/details/6344678
二:修改控件的源码,对控件增加新的属性。本文主要讨论这种情况。
比如对 TextView控件添加 android:myattr 属性,这样就可以在 XML直接用以下代码定义
<TextView android:myattr= "true" android:text= "@string/hello_world" />
第一步:在 framework 中新增属性,
修改 frameworks/base/core/res/res/values/attrs.xml
加入
<attr name=”myattr” format=”boolean”>
第二步:为这个属性增加 id
修改 frameworks/base/core/res/res/values/public.xml
加入
<public type=”attr” name=”myattr” id=”0x010103cd”/>
注意这个 id 不要和已经有的 id重复。 Id 中各个位的含义请看以下网页:
《 Android Resource处理流程分析 -- R.java文件中资源 ID的含义 》
http://blog.csdn.net/hao1056531028/article/details/8756647
这里引用该文章的图:
Android 在编译过程中就是在生成的 out/target/common/R/android/R.java 中加入
public static final int myattr=0x010103cd;public static final int TextView_myattr = 76;
第三步:就可以在 TextView 类中使用 TextView_myattr
frameworks/base/core/java/android/widget/TextView.java
private boolean myattr = false; public TextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle);… a = theme.obtainStyledAttributes( attrs, com.android.internal.R.styleable.TextView, defStyle, 0); int n = a.getIndexCount(); for (int i = 0; i < n; i++) { int attr = a.getIndex(i); switch (attr) {… case com.android.internal.R.styleable.TextView_uureverse: myattr = a.getBoolean(attr, myattr); break;…
剩下的就是在这个类中添加 myattr 的具体实现方法。
- 为 android的系统控件添加属性
- 为android自定义View控件添加自定义的属性
- 为android自定义控件添加自定义属性
- 为控件添加属性
- 为服务器控件添加属性
- 为用户控件添加属性
- 为控件后台添加属性
- 为自定义控件添加属性
- Android 两种为自定义控件添加属性的使用方法和区别
- 为Android系统“更新”应用添加480像素下的属性值
- Android开发-UI控件:为ListView,GirdView,etc...添加系统自带的下拉刷新功能
- Android读取系统控件的自定义属性
- Android自定义控件添加属性
- 为android系统添加产品的过程
- ASP.NET为用户控件添加属性
- 在后台为控件添加属性
- 为控件添加自定义附加属性
- 3.为自定义控件添加属性
- Java案例
- 解决库链接时的相互依赖
- VS2008中CDockablePane停靠框
- 猜数字游戏的实现
- 如何解决"应用程序无法启动,因为应用程序的并行配置不正确"问题
- 为 android的系统控件添加属性
- linux 从文件系统方面理解软链接、硬链接
- JS的Document属性和方法
- 数据结构实验题--判断入栈出栈操作序列是否合法
- Qt Model/View学习笔记之四创建新的Model
- Android 打开应用方式之间的区别(安装后选择“打开(Open)”对比其它方式)
- 关于mysql大数据量分页方法
- js php 中文互相传输 编码问题
- signal variable