android开发AndroidManifest.xml配置activity中的meta-data属性应用

<meta-data>
直译为“元数据”,该标签可为<activity>、<activity-alias>、<application>、<provider>、<receiver>、<service>等组件提供附加数据项。
组件元素可以包含任意数量的<meta-data>子元素。系统将meta-data配置的数据存储于一个Bundle对象中,可以通过PackageItemInfo.metaData字段获取。

首先在AndroidManifest.xml 文件中对应你需要加meta-data属性配置的加上自己需要的信息

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data android:name="app.meta.attr.data1" android:value="appVersion"></meta-data>
            <meta-data android:name="app.meta.attr.data2" android:value="10001"></meta-data>
            <meta-data android:name="app.meta.attr.data3" android:value="@string/app_name"></meta-data>
            <meta-data android:name="app.meta.attr.data4" android:resource="@id/layout_webview_url"></meta-data>
        </activity>
MainActivity.java

import androidx.appcompat.app.AppCompatActivity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        try {
            ActivityInfo activityInfo = getPackageManager().getActivityInfo(new ComponentName(this, MainActivity.class), PackageManager.GET_META_DATA);
            Bundle bundle = activityInfo.metaData;

            String data1 = bundle.getString("app.meta.attr.data1");//字符串类型
            int data2 = bundle.getInt("app.meta.attr.data2"); //数值类型
            String data3 = bundle.getString("app.meta.attr.data3");//获取资源配置内容信息
            int data4 = bundle.getInt("app.meta.attr.data4");//获取资源配置内容对应ID
            Toast.makeText(getApplication(),"data1:"+data1+",data2:"+data2+",data3:"+data3+",data4:"+data4,Toast.LENGTH_LONG).show();

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

猜你喜欢

转载自blog.csdn.net/m0_37622302/article/details/107669097
今日推荐