首页 > 其他分享 >一手遮天 Android - Resource: 读取 meta-data 数据

一手遮天 Android - Resource: 读取 meta-data 数据

时间:2023-03-21 11:47:10浏览次数:64  
标签:Resource webabcd meta import Android data 节点 android

项目地址 https://github.com/webabcd/AndroidDemo
作者 webabcd

一手遮天 Android - Resource: 读取 meta-data 数据

示例如下:

/resource/MetaDataDemo1.java

/**
 * 读取 meta-data 数据
 *
 * 在 AndroidManifest.xml 的 application 节点或 activity 节点或 service 节点或 receiver 节点下可以配置 meta-data 数据
 * 本例以在 application 节点下配置如下数据为例
 * <meta-data android:name="com.webabcd.androiddemo.MetaData1" android:value="abc" />
 * <meta-data android:name="com.webabcd.androiddemo.MetaData2" android:value="@string/sample_hello1" />
 */

package com.webabcd.androiddemo.resource;

import androidx.appcompat.app.AppCompatActivity;

import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.webabcd.androiddemo.R;

public class MetaDataDemo1 extends AppCompatActivity {

    private Button mButton1;

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

        mButton1 = findViewById(R.id.button1);

        sample1();
    }

    private void sample1() {

        String result = "";
        try {
            /**
             * 通过 getPackageManager().getApplicationInfo() 可以获取 application 节点下的 meta-data 数据
             * 通过 getPackageManager().getActivityInfo() 可以获取 activity 节点下的 meta-data 数据
             * 通过 getPackageManager().getServiceInfo() 可以获取 service 节点下的 meta-data 数据
             * 通过 getPackageManager().getReceiverInfo() 可以获取 receiver 节点下的 meta-data 数据
             */
            ApplicationInfo info = this.getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
            result = "MetaData1:" + info.metaData.getString("com.webabcd.androiddemo.MetaData1");
            result += ", MetaData2:" + info.metaData.getString("com.webabcd.androiddemo.MetaData2");
        } catch (PackageManager.NameNotFoundException e) {
            result = e.toString();
        }

        final String finalResult = result;
        mButton1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast toast = Toast.makeText(MetaDataDemo1.this, finalResult, Toast.LENGTH_LONG);
                toast.show();
            }
        });
    }
}

/layout/activity_resource_metadatademo1.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAllCaps="false"
        android:text="读取 meta-data 数据" />

</RelativeLayout>

/AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.webabcd.androiddemo">

    <application>
        <meta-data
            android:name="com.webabcd.androiddemo.MetaData1"
            android:value="abc" />
        <meta-data
            android:name="com.webabcd.androiddemo.MetaData2"
            android:value="@string/sample_hello1" />
    </application>

</manifest>

项目地址 https://github.com/webabcd/AndroidDemo
作者 webabcd

标签:Resource,webabcd,meta,import,Android,data,节点,android
From: https://www.cnblogs.com/webabcd/p/android_resource_MetaDataDemo1.html

相关文章

  • 一手遮天 Android - UI: 闪屏页(启动页)
    项目地址https://github.com/webabcd/AndroidDemo作者webabcd一手遮天Android-UI:闪屏页(启动页)示例如下:/SplashActivity.java/***闪屏页(启动页)**程......
  • Android开发-Android操作系统简介
    01.  系统简介1.1 Android名词Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、......
  • MessageUtils:ResourceBundle访问properties文件
    一个简单的ResourceBundle例子packagecom.app;importjava.io.Serializable;importjava.util.Iterator;importjava.util.List;importjava.util.......
  • Android Studio通过jdbc连接MySQL
    1、下载MySQL-connector-jave.jar包地址如下:https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.46 2、将jar包移到如图所示的位置,然后右键addasl......
  • ArcGIS Runtime for Android 3 Hello World
    本文分享如何一个新建项目HelloWorld,并重点说明如何模拟调试。一、新建项目现在的软件越来越方便,选择模板,直接新建项目即可。输出路径为自定义的D:\Android\Project......
  • Android studio学习笔记
    wrap_content内容有多少,它的宽度有多少match_parent匹配父空间,上一级宽度多少,这一级多少使用宽度长度自定义的时候最好用dp,因为Android屏幕碎片化比较严重,在不同的系统......
  • Android资源的使用之String
    Android允许定义多个字符串资源文件在res/values中<?xmlversion="1.0"encoding="utf-8"?><resources><stringname="hello">HelloWorld!</string><stringnam......
  • android ImageButton示例
    packagecom.xiaohang;importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.app.Dialog;importandroid.app.AlertDialog.Builder;impo......
  • Android 之 下拉框(Spinner)的使用
    获得被选中的选项的文本,Index,IDStringvalue=spinner.getSelectedItem().toString();intindex=spinner.getSelectedItemPosition();......
  • Android xml文件里读取string array
    example:XMLfilesavedatres/values/strings.xml:<?xmlversion="1.0"encoding="utf-8"?><resources><string-arrayname="plan......