meta-data的使用
2016-01-05 11:02
441 查看
参考:http://developer.android.com/guide/topics/manifest/meta-data-element.html
/article/2180602.html
/article/1609837.html
meta-data键值对,所有的名值对被包装成Bundle供组件使用,因此使用方式同Bundle。metadata普通值由value属性给出,资源ID由resource属性给出。
定义meta-data:
相关资源文件:
使用:
再其他组件中使用meta-data:
修改meta-data的值,实现在application中的数据传递,不能。
/article/2180602.html
/article/1609837.html
meta-data键值对,所有的名值对被包装成Bundle供组件使用,因此使用方式同Bundle。metadata普通值由value属性给出,资源ID由resource属性给出。
定义meta-data:
<meta-data android:name="pepelu_string_1" android:value="pepelu_value" /> <meta-data android:name="pepelu_string_2" android:value="@string/meta_pepelu" /> <meta-data android:name="pepelu_int_1" android:resource="@drawable/ic_launcher" />
相关资源文件:
<string name="meta_pepelu">activity meta data pepeplu</string> //R: public static int ic_launcher=0x7f020017;
使用:
//获取activity 的meta-data字段:string try { ActivityInfo itemInfo = this.getPackageManager().getActivityInfo(getComponentName(), PackageManager.GET_META_DATA); String tag = itemInfo.metaData.getString("pepelu_string_1"); Log.d("pepelu", "activity meta-data=" + tag); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } //获取int字段 try { ActivityInfo info2=getPackageManager().getActivityInfo(getComponentName(),PackageManager.GET_META_DATA); int picId=info2.metaData.getInt("pepelu_int_1"); Log.d("pepelu","activity int ="+picId); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); }
再其他组件中使用meta-data:
//在Activity应用<meta-data>元素。 ActivityInfo info = this.getPackageManager().getActivityInfo(getComponentName(), PackageManager.GET_META_DATA); info.metaData.getString("meta_name"); //在application应用<meta-data>元素。 ApplicationInfo appInfo = this.getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA); appInfo.metaData.getString("meta_name"); //在service应用<meta-data>元素。 ComponentName cn = new ComponentName(context, MetaDataService.class); ServiceInfo info = this.getPackageManager().getServiceInfo(cn, PackageManager.GET_META_DATA); info.metaData.getString("meta_name"); //在receiver应用<meta-data>元素。 ComponentName cn = new ComponentName(context, MetaDataReceiver.class); ActivityInfo info = context.getPackageManager().getReceiverInfo(cn, PackageManager.GET_META_DATA); info.metaData.getString("meta_name");
修改meta-data的值,实现在application中的数据传递,不能。
相关文章推荐
- python bool值要注意的一些地方
- UE4 How do I use InstancedStaticMeshes ?
- php中数组的遍历方法及细节(笔记)
- MASTUDIO: 手机移动办公-完整案例赏析
- redis-cli 命令总结
- CMFCMenuBar动态删除菜单和创建新菜单
- SendMessage消息大全
- setObjectForKey和setValueForKey的用法和区别
- 通过 jstat -gcutil 来学习JVM 内存分配策略与 GC 发生时机
- cocoapods 安装报错 ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/xcodeproj
- 阿里巴巴是如何发展和激励人才的
- php抓取网页信息
- return命令--后面的程序不执行
- android 代码中调用shell
- Linux下的platform总线驱动(二)
- UE4 Rama's Vertex Snap Editor Plugin
- Myeclipse10破解 注册之前找不到common文件夹的问题
- tomcat git linux部署脚本
- Apache JMeter是
- CentOS-6.5-x86_64 最小化安装后,怎样安装 man 程序?