• 元数据(meta-data)


    本章所介绍的元数据的知识,可能在定制系统时会用到.因为那是后需要修改底层框架的一些内容




    一、元数据的定义

    在AndroidManifest.xml中如下书写:

     <activity
                android:name="com.njupt.metadata.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
                
                <meta-data android:name="java_ns" android:value="章泽天11" />
                <meta-data android:name="balance" android:value="45000"/>
                <meta-data android:name="c++_ns" android:value="@string/second"/>
                <meta-data android:name="wife" android:resource="@string/first"/>
            </activity>



    二、获取元数据

    MainActivity

    package com.njupt.metadata;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.ComponentName;
    import android.content.pm.ActivityInfo;
    import android.content.pm.PackageManager;
    import android.content.pm.PackageManager.NameNotFoundException;
    import android.view.Menu;
    import android.view.View;
    
    public class MainActivity extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    	}
    
    	public void get(View v){
    		try {
    			PackageManager pm = getPackageManager();
    			ComponentName component = new ComponentName(this,MainActivity.class);
    			ActivityInfo info = pm.getActivityInfo(component,PackageManager.GET_META_DATA);
    			Bundle bundle = info.metaData;
    			String java_ns = bundle.getString("java_ns");
    			int balance = bundle.getInt("balance");
    			String c_ns = bundle.getString("c++_ns");
    			String wife = getString(bundle.getInt("wife"));
    			
    			System.out.println("java_ns: " + java_ns + ", balance: " + balance +",c_ns: " + c_ns +",wife: " + wife);
    		} catch (NameNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.main, menu);
    		return true;
    	}
    
    }
    


  • 相关阅读:
    页面元素定位-CSS元素基本定位
    自动化测试理论知识以及相关框架
    flask自学
    关于测试报告的一些理解
    jenkins、k8s、docker学习
    常用装饰器
    正则
    pycharm设置展示运行结果行数以及python一些好用的模块
    python相关知识点3,线程锁、单例模式
    python相关知识点2(各种内置方法)
  • 原文地址:https://www.cnblogs.com/riskyer/p/3331429.html
Copyright © 2020-2023  润新知