今天用到的一些东西,在Android的使用过程中meta-data一般可以作为子元素,被包含在<application>,<activity>,<service>中,而在项目过程中取出这个meta-data里面的东西也是方法各不相同:
我们现在只说两个,因为代码比较简单:
首先是在<application>的 ,我们在Manifest.xml文件中的<application>中添加:
<meta-data android:name="MYDATA_APPLICATION" android:value="this is my meta-data message for application;" />然后在,相应的Activity文件中取值:
try { ApplicationInfo applicationInfo = this.getPackageManager ( ).getApplicationInfo ( getPackageName ( ) , PackageManager.GET_META_DATA ) ; String msg = applicationInfo.metaData.getString ( "MYDATA_APPLICATION" ) ; textView.setText ( msg ) ; } catch ( NameNotFoundException e ) { // TODO 自动生成的 catch 块 e.printStackTrace ( ) ; } break ;注意哦 ,我们在这里使用的是ApplicationInfo这个类帮助我们取值。
然后我们看看<activity>中的取值:首先我们也是在Manifest.xml文件的<activity>中给<meta_data>赋值,
<meta-data android:name="MYDATA_ACTIVITY" android:value="this is my meta-data message for activity;" />随后我们在相应的Activity文件中取值:
try { ActivityInfo activityInfo = this.getPackageManager ( ).getActivityInfo ( getComponentName ( ) , PackageManager.GET_META_DATA ) ; String msg = activityInfo.metaData.getString ( "MYDATA_ACTIVITY" ) ; textView.setText ( msg ) ; } catch ( NameNotFoundException e ) { // TODO 自动生成的 catch 块 e.printStackTrace ( ) ; }看到了 ,这个时候我们的帮助取值的类是ActivityInfo。
对于<service>看样子很长的样子,我们就稍微的添加一点:
给<meta-data>赋值:额..当然首先你的项目中间要有一个Service
<service android:name="my" > <meta-data android:name="MYDATA_SERVICE" android:value="this is my meta-data message for service ;" > </meta-data> </service>Service所在的Activity文件中间取值:
ComponentName componentName = new ComponentName ( this , TestService.class ) ; ServiceInfo info ; try { info = this.getPackageManager ( ).getServiceInfo ( componentName , PackageManager.GET_META_DATA ) ; String msg = info.metaData.getString ( "MYDATA_SERVICE" ) ; textView.setText ( msg ) ; } catch ( NameNotFoundException e ) { // TODO 自动生成的 catch 块 e.printStackTrace ( ) ; } break ;这个时候我们取值用到的是
ComponentName类
好了,写到这,完了