java反射android的r文件的示例

动态取得R文件的int值,通过string-array name属性动态获取R.array.xxx的int值

复制代码 代码如下:
//通过string-array name属性动态获取R.array.xxx的int值
public CharSequence[] getListData(String name) {
        try {
            Class<?> arrayClass = getArrayResource().getClass();
            Field intField = arrayClass.getField(name);
            int sourceId = intField.getInt(name);
            return getResources().getTextArray(sourceId);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

private Object arrayResource = null;

private Object getArrayResource() {
        if (arrayResource == null) {
            Class<?> resource = R.class;
            try {
                Class<?>[] classes = resource.getClasses();
                for (Class<?> c : classes) {
                    int i = c.getModifiers();
                    String className = c.getName();
                    String s = Modifier.toString(i);
                    if (s.contains("static") && className.contains("array")) {
                        return c.getConstructor().newInstance();
                    } else {
                        continue;
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return arrayResource;
    }

时间: 2024-08-02 23:50:38

java反射android的r文件的示例的相关文章

java反射android的r文件的示例_Android

动态取得R文件的int值,通过string-array name属性动态获取R.array.xxx的int值 复制代码 代码如下: //通过string-array name属性动态获取R.array.xxx的int值public CharSequence[] getListData(String name) {        try {            Class<?> arrayClass = getArrayResource().getClass();            Fie

ndroid项目 文件报错-Android项目R文件报错

问题描述 Android项目R文件报错 Android新建项目R.java文件报错求大神帮忙! 解决方案 试试重新build一下 解决方案二: 是因为没有找到定义的padding的属性,看看是否取到

Android——处理R文件丢失或报错问题

         在安卓开发中,R类是一个自动生成的类,放置在gen目录下,负责管理应用中的资源.R文件出错是一个蛮常见的问题,下面来总结下它为啥会报错以及出错了该怎么处理.         先说为啥会报错:              刚说了,这个类负责管理资源,所以它除了错误,首先你就要先去检查你的资源文件是否都正确,也就是你res文件夹下的东西.引起资源文件报错的原因有很多,常遇到的比如,布局文件名称大写,copy的时候生成了相同ID的view...排除了这些问题之后,如果还不ok的话,请依

[Android]Android中R文件的丢失问题

R.java这个文件是会自动生成的.但是有时候你写错xml文件的时候,R.java是不会自动生成对应的值.这个时候我们会很习惯去clean一下这个项目,这个时候会突然发现,R.java竟然不见了. 这个时候的你肯定非常的气愤,你可能会拼命在网上找答案,网上会有很多答案告诉你 右键项目-->Android Tools--> fix project properties.可能你怎么fix都不能把R.java弄出来.这个时候你就要考虑一下是不是某些xml写错了,出了问题.只要xml文件有问题,系统是

android技巧:android应用R文件无法读取的问题

很多时候当我们发现从网上下载的一些工程无法使用,只有R布局文件报错的时候,多数原因是工程本身的target和自身eclipse的target不符合. 而自己的target可以从Project-Properties中获得.如图中target为18. 此时只要修改下载的文件的target为我们eclipse的target值即可.在AndroidManifest.xml文件中是设定最小targe为8,最大为18. 在project.properties文件中,制定target数值 查看本栏目更多精彩内

【android-tips】关于android应用R文件无法读取

          (转载请注明出处:http://blog.csdn.net/buptgshengod)        很多时候当我们发现从网上下载的一些工程无法使用,只有R布局文件报错的时候,多数原因是工程本身的target和自身eclipse的target不符合.       而自己的target可以从Project-Properties中获得.如图中target为18.       此时只要修改下载的文件的target为我们eclipse的target值即可.在AndroidManife

Android学习之文件存储读取_Android

前言 相信大家都知道知道,在AndroidOS中,提供了五中数据存储方式,分别是:ContentProvider存储.文件存储.SharedPreference存储.SQLite数据库存储.网络存储.那么这一篇,我们介绍文件存储. 1.Android文件的操作模式 学过Java的同学都知道,我们新建文件,然后就可以写入数据了,但是Android却不一样,因为Android是 基于Linux的,我们在读写文件的时候,还需加上文件的操作模式,Android中的操作模式如下: 2.文件的操作模式 我们

Android学习之文件存储读取

前言 相信大家都知道知道,在AndroidOS中,提供了五中数据存储方式,分别是:ContentProvider存储.文件存储.SharedPreference存储.SQLite数据库存储.网络存储.那么这一篇,我们介绍文件存储. 1.Android文件的操作模式 学过Java的同学都知道,我们新建文件,然后就可以写入数据了,但是Android却不一样,因为Android是 基于Linux的,我们在读写文件的时候,还需加上文件的操作模式,Android中的操作模式如下: 2.文件的操作模式 我们

源码-Android XmlSerializer 保存文件问题

问题描述 Android XmlSerializer 保存文件问题 XmlSerializer serializer = Xml.newSerializer(); XmlSerializer是个接口,那这行代码怎么理解?求大牛指导 解决方案 这是XML解析的实例: public class TestCase extends AndroidTestCase { public void test() { // writeXmlToLocal(); List<Person> personList =