代码动态读取xml配置文件
2017-06-14 14:18
381 查看
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.metadatatest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="8" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data android:name="mTag" android:value="@string/meta_application"></meta-data>
<activity
android:name="com.example.metadatatest.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- 一般的值可以通过value属性来指定,但是如果要指定一个资源id作为一个值,那么就要用resource属性来代替。 -->
<meta-data android:name="mTag" android:value="@string/meta_activity"></meta-data>
<!--利用resource属性将指定 mResource 的资源id号-->
<meta-data android:name="mResource" android:resource="@drawable/ic_launcher"></meta-data>
</activity>
<service android:name="com.example.metadatatest.service.DemoService">
<meta-data android:name="mTag" android:value="@string/meta_service"></meta-data>
</service>
<receiver android:name="com.example.metadatatest.receiver.DemoReceiver">
<intent-filter android:priority="1000">
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
<meta-data android:name="mTag" android:value="@string/meta_broadcast"></meta-data>
</receiver>
</application>
</manifest>
/**
* 读取application 节点 meta-data 信息
*/
private void readMetaDataFromApplication() {
try {
ApplicationInfo appInfo = this.getPackageManager()
.getApplicationInfo(getPackageName(),
PackageManager.GET_META_DATA);
String mTag = appInfo.metaData.getString("mTag");
Log.e(TAG, "mTag=" + mTag);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
}
4000
/**
* 读取BroadcastReceiver 节点 meta-data 信息
*/
private void readMetaDataFromBroadCast() {
try {
ComponentName cn = new ComponentName(this, DemoReceiver.class);
ActivityInfo info = this.getPackageManager().getReceiverInfo(cn,
PackageManager.GET_META_DATA);
String mTag = info.metaData.getString("mTag");
Log.e(TAG, "mTag=" + mTag);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
}
/**
* 读取Service 节点 meta-data 信息
*/
private void readMetaDataFromService() {
try {
ComponentName cn = new ComponentName(this, DemoService.class);
ServiceInfo info = this.getPackageManager().getServiceInfo(cn,
PackageManager.GET_META_DATA);
String mTag = info.metaData.getString("mTag");
Log.e(TAG, "mTag=" + mTag);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
}
/**
* 读取Activity 节点 meta-data 信息
*/
private void readMetaDataFromActivity() {
ActivityInfo info;
try {
info = this.getPackageManager().getActivityInfo(getComponentName(),
PackageManager.GET_META_DATA);
String mTag = info.metaData.getString("mTag");
Log.e(TAG, "mTag=" + mTag);
//读取图片资源id
int mResource = info.metaData.getInt("mResource");
iv_pic.setImageResource(mResource);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
}
package="com.example.metadatatest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="8" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data android:name="mTag" android:value="@string/meta_application"></meta-data>
<activity
android:name="com.example.metadatatest.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- 一般的值可以通过value属性来指定,但是如果要指定一个资源id作为一个值,那么就要用resource属性来代替。 -->
<meta-data android:name="mTag" android:value="@string/meta_activity"></meta-data>
<!--利用resource属性将指定 mResource 的资源id号-->
<meta-data android:name="mResource" android:resource="@drawable/ic_launcher"></meta-data>
</activity>
<service android:name="com.example.metadatatest.service.DemoService">
<meta-data android:name="mTag" android:value="@string/meta_service"></meta-data>
</service>
<receiver android:name="com.example.metadatatest.receiver.DemoReceiver">
<intent-filter android:priority="1000">
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
<meta-data android:name="mTag" android:value="@string/meta_broadcast"></meta-data>
</receiver>
</application>
</manifest>
/**
* 读取application 节点 meta-data 信息
*/
private void readMetaDataFromApplication() {
try {
ApplicationInfo appInfo = this.getPackageManager()
.getApplicationInfo(getPackageName(),
PackageManager.GET_META_DATA);
String mTag = appInfo.metaData.getString("mTag");
Log.e(TAG, "mTag=" + mTag);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
}
4000
/**
* 读取BroadcastReceiver 节点 meta-data 信息
*/
private void readMetaDataFromBroadCast() {
try {
ComponentName cn = new ComponentName(this, DemoReceiver.class);
ActivityInfo info = this.getPackageManager().getReceiverInfo(cn,
PackageManager.GET_META_DATA);
String mTag = info.metaData.getString("mTag");
Log.e(TAG, "mTag=" + mTag);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
}
/**
* 读取Service 节点 meta-data 信息
*/
private void readMetaDataFromService() {
try {
ComponentName cn = new ComponentName(this, DemoService.class);
ServiceInfo info = this.getPackageManager().getServiceInfo(cn,
PackageManager.GET_META_DATA);
String mTag = info.metaData.getString("mTag");
Log.e(TAG, "mTag=" + mTag);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
}
/**
* 读取Activity 节点 meta-data 信息
*/
private void readMetaDataFromActivity() {
ActivityInfo info;
try {
info = this.getPackageManager().getActivityInfo(getComponentName(),
PackageManager.GET_META_DATA);
String mTag = info.metaData.getString("mTag");
Log.e(TAG, "mTag=" + mTag);
//读取图片资源id
int mResource = info.metaData.getInt("mResource");
iv_pic.setImageResource(mResource);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
}
相关文章推荐
- 通过Digester动态读取xml配置文件
- Spring配置 在xml和java代码中读取properties文件
- Spring MVC框架下在java代码中访问applicationContext.xml文件中配置的文件(可以用于读取配置文件内容)
- INI的替代品--XML配置文件读取与保存
- Python读取XML配置文件小例子
- samba unix风格的配置文件配置信息读取C代码.
- [转贴]XML配置文件的读取处理
- 遍历读取XML文件及web.config的动态更新
- INI的替代品--XML配置文件读取与保存
- ASP.NET 2.0 读取配置文件[INI](示例代码下载)
- ASP.NET中读取XML文件信息的4种方法与示例代码
- XML配置文件的读取处理
- JAVA技术:XML配置文件的读取处理
- 使用序列化的方式来读取XML配置文件
- ASP.NET中读取XML文件信息的4种方法与示例代码
- xml读取、保存不同类型打印配置的代码[原创]
- XML配置文件的读取处理(转)
- 从XML文件中读取数据到treeview及动态设置其样式
- XML形式的配置文件解析框架以及自动代码生成(一)
- ASP.NET 2.0 读取配置文件[INI](示例代码下载)