meta-data的使用

摘要:
元数据的正常值由value属性给出,资源ID由resource属性给出。定义元数据:相关资源文件:activitymetadata peplu//R:publicstatisticc_launcher=0x7f020017;使用://获取活动的元数据字段:stringtry{ActivityInfoitemInfo=this.getPackageManager().getActivityInfo;Stringtag=itemInfo.metaData.getString;Log.d;}catch{e.printStackTrace();}/获取int字段try{ActivityInfoinfo2=getPackageManager。元数据。获取Int;日志d、 }catch{e.printStackTrace();}使用meta-data://in其他组件应用“活动”中的元素。ActivityInfoinfo=this.getPackageManager().getActivityInfo;info.metaData.getString;//在应用程序中应用<元数据>元素。

参考:http://developer.android.com/guide/topics/manifest/meta-data-element.html

http://my.oschina.net/xesam/blog/135333

http://blog.csdn.net/top_code/article/details/11952563

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中的数据传递,不能。

免责声明:文章转载自《meta-data的使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇制造内核崩溃并使用crash分析内核崩溃产生的vmcore文件写给小白的RxJava教程(一)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

AndroidManifest.xml配置文件详解 (转)

AndroidManifest.xml配置文件对于Android应用开发来说是非常重要的基础知识,本文旨在总结该配置文件中重点的用法,以便日后查阅。下面是一个标准的AndroidManifest.xml文件样例。     [html] view plaincopy   <?xml version="1.0" encoding="utf-8"?>...

angularJs:双向数据绑定

示例1 <!DOCTYPE html> <html ng-app> <head> <meta charset="UTF-8" /> <title>AngularJS的特性之:双向绑定</title> <!--引入官方标准的angular. min.js --> <sc...

canvas中文字和图片的绘制

绘制文字 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas</title> <style> .canvas{border:1px...

如何查看现有项目SSH版本

查看现有项目的struts和hibernate和spring版本 1. 查看 struts.jar/META-INF/MANIFEST.MF再查看 Implementation-Version看后面的数字.. Manifest-Version: 1.0Specification-Title: Struts FrameworkClass-Path:  com...

手机页面尺寸设置(一)

参考:http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/quick-tip-dont-forget-the-viewport-meta-tag/ 一、网页手机wap2.0网页的head里加入下面这条元标签,在iPhone的浏览器中页面将以原始大小显示,并不允许缩放。 其中: width -...

layui 一行多列控件时使用table布局

当使用多列布局时,使用div+css布局感觉代码不好控制,使用table结构清晰,布局简洁,不用写一堆的css来定位,控制大小的。 例子: <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="w...