Android中类的反射的两个应用示例
来源:互联网 发布:mp3拼接软件 编辑:程序博客网 时间:2024/05/20 04:27
一.类的反射来创建Fragment对象:
//定义一个Fragment的数组对象Fragment[] fragments = new Fragment[5];/** * 定义五个碎片的类的名字的字符串 */private String[] fragmentName = {"TabMatchFragment", "TabTopicFragment", "TabMessageFragment", "TabBoxFragment", "TabMeFragment"};/** * 使用反射的方法来做创建实例化Fragment对象 */private void createFragment(Integer tag) { //包名+类型String name = "com.lwz.mathbox.ui.fragment.tab." + fragmentName[tag]; //newInstance是Fragment中实例化fragment的方法 Fragment fragment = (Fragment) Class.forName(name).newInstance(); //把创建的Fragment对象放到对应的Fragment数组中 fragments[tag] = fragment; }
二.使用类的反射来获取资源文件的资源
在AndroidStudio中的mipmap资源文件夹如果存在a1.jpg文件
使用下面语句可以使用类的反射来获取资源文件的资源ID,并显示图片在页面上。
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ImageView imageView = new ImageView(this); imageView.setImageResource(getMipmapId(this, "a1")); setContentView(imageView);}//获取资源ID的类反射的具体实现 public static int getMipmapId(Context paramContext, String paramString) { return paramContext.getResources().getIdentifier(paramString, "mipmap", paramContext.getPackageName()); }}
对于第二个应用在Android程序中还是比较有用的,比如要加载几十个小图片在网页上面,如果全部的资源文件列出来是比较麻烦的。如果是使用for循环先定义图片的文件名,再使用反射来获取资源的ID是比较方便的。
三.一个Android资源文件的类反射实现后的工具类:
import android.content.Context;public class CPResourceUtil { //获取布局文件的ID public static int getLayoutId(Context paramContext, String paramString) { return paramContext.getResources().getIdentifier(paramString, "layout", paramContext.getPackageName()); } //获取String字符串的ID public static int getStringId(Context paramContext, String paramString) { return paramContext.getResources().getIdentifier(paramString, "string", paramContext.getPackageName()); } //获取drawable文件夹里面的图片的ID,这是Eclipse中的 public static int getDrawableId(Context paramContext, String paramString) { return paramContext.getResources().getIdentifier(paramString, "drawable", paramContext.getPackageName()); } //获取mipmap文件夹里面的图片的ID,这是AndroidStudio中的public static int getMipmapId(Context paramContext, String paramString) { return paramContext.getResources().getIdentifier(paramString, "mipmap", paramContext.getPackageName());} //获取values文件夹里面的资源style的ID public static int getStyleId(Context paramContext, String paramString) { return paramContext.getResources().getIdentifier(paramString, "style", paramContext.getPackageName()); } //获取里面的资源的ID public static int getId(Context paramContext, String paramString) { return paramContext.getResources().getIdentifier(paramString,"id", paramContext.getPackageName()); } //获取values文件夹里面的资源color的ID public static int getColorId(Context paramContext, String paramString) { return paramContext.getResources().getIdentifier(paramString, "color", paramContext.getPackageName()); } //获取values文件夹里面的资源array的ID public static int getArrayId(Context paramContext, String paramString) { return paramContext.getResources().getIdentifier(paramString, "array", paramContext.getPackageName()); } }
5 0
- Android中类的反射的两个应用示例
- android中反射的应用
- Android中java反射的应用
- android 反射的应用
- java反射机制的简单示例(android中)
- Android中Java反射技术的使用示例
- java反射机制的两个应用
- java中反射的应用类
- php中反射的应用
- .NET中反射的应用
- java 中反射的应用
- 类反射的应用
- 反射的简单示例
- android应用中获取文件名的两个方法
- 两个方法的反射
- Android应用中执行shell脚本的工具类的示例
- java反射机制的两个具体应用实例
- 反射应用:比较两个对象属性的不同
- Java 性能调优 性能优化策略
- docker安装搭建
- android eclipse 脚本打包问题
- Bigdecimal的加减乘除
- 信息熵---信息不确定度
- Android中类的反射的两个应用示例
- js自定义对象
- Android_选项卡
- Android View的onFinishInflate和onSizeChanged生命周期详解
- pycharm下如何查看python的变量类型和变量内容
- UIDatePicker需要注意的知识点
- Android 注解入门
- Unity使用C#调用C++dll传递指针参数、接收指针返回值
- 日常笔记记录Mybatis