一.利用资源文件配置字符串

1.概述

**好处:**将字符串配置到配置文件中,可以在修改字符串内容时不需要重新编译代码

2.代码获取

(1)概述

使用content类中的getString()方法就可以从配置文件获取字符串了。使用R.string.名字作为参数就能获取了。

(2)示例

代码:

getString(R.string.app_name);

对应配置文件字符串:

目录:/res/values/strings.xml


    ActivityStudy

二.利用元数据传递配置信息

1.概述

(1)介绍

元数据是通过meta-data标签定义在清单文件内的数据,后续需要使用时可以通过定义时指定的name属性,获取其的value值。一般用于放置第三方服务的Token值

(2)元数据定义格式

定义在清单文件对于主活动配置的作用域名内


image-20240315224124149

2.代码获取

(1)步骤

  • 调用getPackageManager方法获取当前应用的包管理器
  • 调用包管理器的getActivityInfo方法获取当前活动的信息对象
    • 参数1:当前活动的主键名称 -> 使用getComponentName()获取
    • 参数2:获取信息对象的类型
  • 调用活动信息对象的metaData获取Bundle包裹对象
  • 通过包裹对象的getString方法就可以获得指定名称的参数值了

(2)示例

**获取的代码:**会报异常,使用try..catch捕获即可

下面的Value就已经成功从清单文件中定义的元数据test_string中获取到数据了

//获取应用包管理器
PackageManager pm = getPackageManager();
//从应用包管理器中获取当前的活动信息
ActivityInfo info = pm.getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
//获取当前活动附加的元数据信息
Bundle bundle = info.metaData;
//通过键"test_string"从元数据中获取其对应的值
String value = bundle.getString("test_string");

对应清单文件AndroidManifest.xml内的值:


三.从配置文件中读元数据值

1.概述

(1)介绍

元数据的meta-data标签除了前面说到的name属性和value属性,还拥有resource属性,该属性可指定一个XML文件,表示以该文件的内容作为元素据的值

(2)格式

元文件名就保持格式不要动吧,至于配置文件的路径以实际为准


3.实例-配置快捷方式

(1)步骤

  • 在res/values/strings.xml中添加各个菜单项名称的字符串配置
  • 在res目录下创建xml并新建shortcuts.xml,在该文件中填入各组菜单项的快捷方式定义(每个菜单对应哪个活动页面)
  • 给activity节点注册元数据的快捷菜单配置

(2)实际

**1.**在res/values/strings.xml中添加各个菜单项名称的字符串配置

主要在于为shortcuts文件中的Label提供字符串信息,因为其内不能使用硬编码,只能从这里映射过去


    first
    页面跳转
    second
    长按跳转

**2.**在res目录下创建xml并新建shortcuts.xml,在该文件中填入各组菜单项的快捷方式定义

  • 配置菜单项目
属性 说明
shortcutId 快捷方式的编号
enabled 是否启用快捷方式。true表示启用,false表示禁用
icon 快捷菜单左侧的图标
shortcutShortLabel 快捷菜单的短标签
shortcutLongLabel 快捷菜单的长标签。优先展示长标签的文本,长标签放不下时才展示短标签的文本
  • 指定要跳转的活动
属性/标签 说明
action 意图类型
targetPackage 固定为当前APP的完整包名
targetClass 指定该菜单项要跳转的活动的完整路径
categories标签 固定值为:android:name="android.shortcut.conversation"
  • 完整实例:

    注释前的是菜单项目基本信息的设置,注释下就是要跳转的活动的设置



    
        
        
        
    

**3.**在清单文件中补充元数据配置:

包名应该是固定的,至于android:resource的路径,就以上面的xml文件实际位置为准


指明元数据的名字以其其所在位置

image-20240316143623966
最后修改:2024 年 03 月 18 日
如果觉得我的文章对你有用,请随意赞赏