3、Android 活动Activity(4)(为活动补充附加信息)

news/2024/4/29 13:32:05/文章来源:https://blog.csdn.net/weixin_62190821/article/details/126903949

在意图之外给活动添加额外的信息,

首先可以把字符串参数放到字符串资源文件中,待App运行之时再从资源文件读取字符串值;

接着还能在AndroidManifest.xml中给指定活动配置专门的元数据,App运行时即可获取对应活动的元数据信息;

然后利用元数据的resource属性配置更复杂的XML定义,从而为App注册在长按桌面之时弹出的快捷菜单。

利用资源文件配置字符串

res\values\strings.xml可用来配置字符串形式的参数。

配置的字符串参数例子如下:

<string name="weather_str">晴天</string>

在活动页面的Java代码中,调用getString方法即可根据“R.string.参数名称”获得指定参数的字符串值。

获取代码示例如下:    

// 显示字符串资源     private void showStringResource() {

// 从strings.xml获取名叫weather_str的字符串值        

String value = getString(R.string.weather_str);         // 在文本视图上显示文字         tv_resource.setText("来自字符串资源:今天的天气是"+value);     }

 利用元数据传递配置信息

 元数据是一种描述其他数据的数据,它相当于描述固定活动的参数信息。

在activity节点内部添加meta-data标签,通过属性name指定元数据的名称,通过属性value指定元数据的值。示例如下:        

<activity android:name=".MetaDataActivity">

 <meta-data android:name="weather" android:value="晴天" />        

</activity>

也可引用strings.xml已定义的字符串资源,举例如下:        

<activity android:name=".MetaDataActivity">            

<meta-data android:name="weather" android:value="@string/weather_str" />         </activity>

package com.example.chapter04;import androidx.appcompat.app.AppCompatActivity;import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.widget.TextView;public class MetaDataActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_meta_data);TextView tv_meta =findViewById(R.id.tv_meta);try {PackageManager  packageManager=getPackageManager();//获取应用包管理器//从应用宝里面获取当前活动信息ActivityInfo info = packageManager.getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);Bundle bundle = info.metaData;//获取活动附加的元数据信息String weather = bundle.getString("weather");//从包中取出tv_meta.setText(weather);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}}
}

 

 

 给应用页面注册快捷方式

 利用元数据配置快捷菜单

元数据的meta-data标签除了前面说到的name属性和value属性,还拥有resource属性,该属性可指定一个XML文件,表示元数据想要的复杂信息保存于XML数据之中。

利用元数据配置快捷菜单的步骤如下所示:

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

(2)创建res/xml/shortcuts.xml,在该文件中填入各组菜单项的快捷方式定义(每个菜单对应哪个活动页面)。

(3)给activity节点注册元数据的快捷菜单配置,举例如下:

<meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />

注册了快捷方式的活动节点配置 

完整的activity节点配置示例如下:

<activity android:name=".MainActivity">    

<intent-filter>        

<action android:name="android.intent.action.MAIN" />        

<category android:name="android.intent.category.LAUNCHER" />    

</intent-filter>  

  <!-- 指定快捷方式。在桌面上长按应用图标,就会弹出shortcuts所描述的快捷菜单 -->     <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" /> </activity>

<shortcuts xmlns:android="http://schemas.android.com/apk/res/android"><shortcutandroid:shortcutId="first"android:enabled="true"android:icon="@drawable/ic_back"android:shortcutShortLabel="@string/first_short"android:shortcutLongLabel="@string/first_long"><!-- targetClass指定了点击该项菜单后要打开哪个活动页面 --><intentandroid:action="android.intent.action.VIEW"android:targetPackage="com.example.chapter04"android:targetClass="com.example.chapter04.ActStartActivity" /><categories android:name="android.shortcut.conversation"/></shortcut><shortcutandroid:shortcutId="second"android:enabled="true"android:icon="@mipmap/ic_launcher"android:shortcutShortLabel="@string/second_short"android:shortcutLongLabel="@string/second_long"><!-- targetClass指定了点击该项菜单后要打开哪个活动页面 --><intentandroid:action="android.intent.action.VIEW"android:targetPackage="com.example.chapter04"android:targetClass="com.example.chapter04.JumpFirstActivity" /><categories android:name="android.shortcut.conversation"/></shortcut><shortcutandroid:shortcutId="third"android:enabled="true"android:icon="@mipmap/ic_launcher"android:shortcutShortLabel="@string/third_short"android:shortcutLongLabel="@string/third_long"><!-- targetClass指定了点击该项菜单后要打开哪个活动页面 --><intentandroid:action="android.intent.action.VIEW"android:targetPackage="com.example.chapter04"android:targetClass="com.example.chapter04.LoginInputActivity" /><categories android:name="android.shortcut.conversation"/></shortcut>
</shortcuts>

shortcard节点
shortcutID快捷方式的编号
enable是否启用快捷方式 true/false
icon快捷菜单左侧的图标
shortcutShortLabel快捷菜单的短标签
shortcutLongLabel快捷菜单的长标签

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_9310.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#使用winform做一个开关小游戏

成品展示 游戏原理&#xff1a; 游戏时&#xff0c;任意点击一个格子&#xff0c;其自身状态改变&#xff0c;且上下左右四个格子的状态也进行变化&#xff0c;即&#xff1a;原来是开的变成关的&#xff0c;原来是关的变成开的。 制作过程 1.建项目会的吧。 2.设置游戏窗…

TCP重传,滑动窗口,流量控制,拥塞控制

重传机制 超时重传快速重传SACKD-SACK 超时重传 RTT 就是 数据从网络一端传送到另一端所需要的时间&#xff0c;也就是包的往返时间。 超时重传时间以 RTO 表示&#xff0c;应该略大于RTT。 如果超时重发的数据&#xff0c;再次超时时有需要重传&#xff0c;TCP的策略是超…

[需求管理-2]:什么是需求以及需求的收集与识别

目录 第1章 什么是需求识别 第2章 需求的来源 2.1 外部需求&#xff08;收集&#xff09; 2.2 内部需求&#xff08;开发&#xff09; 第3章 需求的层次 第4章 需求的形式 4.1 提问题&#xff08;针对业务层次需求、原始性需求&#xff09;&#xff1a;第一性原理 4.2 …

视觉SLAM十四讲_4李群与李代数

本文为b站视频的一个笔记 在SLAM中&#xff0c;我们经常要解下面一个问题 FminJ(T)Σi1N∣∣zi−Tpi∣∣2F minJ(T) \Sigma_{i1}^N||z_i - Tp_i||^2FminJ(T)Σi1N​∣∣zi​−Tpi​∣∣2 这个问题中, T是位姿变量。对于求最小值问题&#xff0c;我们第一步就要求函数对于变量…

Java小白踩坑录上

文章目录1、Java小白踩坑录 - String和char2、Java小白踩坑录 - Random 揭秘3、Java小白踩坑录 - B计划之Java资源如何释放&#xff1f;4、Java小白踩坑录 - 反射到底有多慢&#xff1f;5、Java小白踩坑录 - 数组 & List6、Java小白踩坑录 - Java类型的七十二变揭秘7、Java…

IDEA生成带参数和返回值注解

文章目录步骤说明打开IDEA进入 - 设置 - 编辑器 - 活动模板现象一&#xff1a;IDEA提示悬空的注解现象二&#xff1a;IDEA提示标签说明已丢失使用范围设置注解使用步骤说明 打开IDEA进入点击左上角 - 文件 - 设置 - 编辑器 - 活动模板 新建活动模板 填写模板文本 编辑变量 …

2.canal服务器配置及java客户端

【README】 1.本文总结自 B站《尚硅谷-canal》&#xff1b; 2.canal 介绍&#xff0c;可以参考 GitHub - alibaba/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件 3. canal服务器配置包括 mysql配置&#xff0c;canal配置等&#xff1b; 4.mysql服务器&#xff0c;ca…

完美且简要,如此输出风控中的重要数据指标曲线(如KS等)

先前&#xff0c;我们用excel给大家演示过一个KS的计算方式。 ks值是在模型中用于区分预测正负样本分隔程度的评价指标。每个样本的预测结果化对应的一个个分数&#xff0c;从最低分到最高分&#xff0c;输出为正负样本的累积分布。Ks值为这个两个正负样本中&#xff0c;最大差…

听吧音乐项目测试

听吧音乐项目 听吧音乐测试1.项目背景2.需求分析2.1 用户需求2.2 软件需求3. 测试点分析及测试用例4. 自动化测试代码4.1 注册登录注销模块自动化测试代码4.2 专辑播放自动化测试代码5. 测试报告1.项目背景 听吧音乐是一个在线听歌网站&#xff0c;游客通过首页可以在线收听其…

WinUI 3 踩坑记:第一个窗口

本文是 WinUI 3 踩坑记 的一部分,该系列发布于 GitHub@Scighost/WinUI3Keng,文中的代码也在此仓库中,若内容出现冲突以 GitHub 上的为准。WinUI 3 应用的入口和 UWP 类似,也是继承自 Application 的一个类,略有不同的是没有 UWP 那么多的启动方式可供重写,只有一个 OnLau…

python计算离散积分

前言 本文是傅立叶及其python应用系列的第一篇文章对应的仓库地址为https://github.com/yuanzhoulvpi2017/tiny_python/tree/main/Fourier_Series 介绍 本篇文章将要介绍一个非常小众的scipy函数&#xff1a;simpson. 这个函数的一大功能就是可以对离散数据积分。之所以要介…

P39 事件处理

P39 事件处理1.事件模型的流程2.事件监听器2.1 动作监听器&#xff08;ActionListener&#xff09;2.2 焦点监听器&#xff08;FocusListener&#xff09;2.3 鼠标监听器&#xff08;MouseListener&#xff09;2.4 鼠标移动/拖动监听器&#xff08;MouseMotionListener&#xf…

SpringAOP的概述与实现

目录 SpringAOP的概述 什么是AOP AOP能干什么 AOP的特点 AOP底层实现 AOP基本概念 连接点 切入点 通知 切面 目标对象 织入 引入 谈谈你对AOP的理解&#xff1f; SpringAOP的实现 依赖引用 spring.xml配置 注解实现 1.定义切面 设置通知 2.开启aop 3.测试 …

金仓数据库KingbaseES客户端编程开发框架-MyBatis(2. 概述 3. MyBatis配置说明)

2. 概述 MyBatis 是一款优秀的持久层框架&#xff0c;它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息&#xff0c; 将接口和 Java 的 POJOs(Plain Old Ja…

Sourcemap 配置详解

前言 之前在脚手架工具内整合将sourcemap上传sentry能力的时候&#xff0c;考虑bundle分割对.map文件关联的限制&#xff1a;比如TerserWebpackPlugin&#xff08;JS压缩&#xff09;只对 devtool 选项的 source-map&#xff0c;inline-source-map&#xff0c;hidden-source-m…

后端研发工程师面经——JAVA语言

文章目录2. JAVA语言2.1 面向对象的三大特性2.2 JAVA异常2.2.1 异常产生的原因2.2.2 异常的分类2.2.3 异常的处理方式2.3 序列化和反序列化2.3.1 概念2.3.2 JAVA中的序列化和反序列化2.3.3 序列化和反序列化的接口2.3.4 Serialization接口详解2.3.5 Externalizable接口详解2.3.…

3D建模师做多了女人会不会找不到老婆?次世代美少女战士建模流程讲解

什么是次世代&#xff1f; 次世代是个舶来语&#xff0c;“次世代游戏”指代和同类游戏相比下更加先进的游戏&#xff0c;即“下一代游戏”。 次世代是利用高模烘焙的法线贴图回帖到低模上&#xff0c;让低模在游戏引擎里可以及时显示高模的视觉效果。模型面数比较高&#xf…

算法 - 计数排序(Counting_Sort)

目录 引言&#xff1a; 学习&#xff1a; 什么是计数排序&#xff08;Counting_sort&#xff09;&#xff1f; 定义&#xff1a; 算法思想&#xff1a; 排序过程&#xff1a; Step 1 &#xff1a; Step 2 &#xff1a; Step 3 &#xff1a; Step 4 : Step 5 &…

单片机项目式实训总篇

采取新方法&#xff0c;让自己尽快变强&#xff0c;为了更好的再次见面。停止大脑内斗。 总学习目标&#xff1a;&#xff08;完成后此文字支持跳转&#xff09; 基础知识 端口操作 显示 高级输入 时间控制 综合 Flag: 一周破解C51程序 学习内容&#xff1a; 了解单片…

DeepExploit——当Metasploit遇上机器学习

Metasploit Meets Machine Learning 文章目录Metasploit Meets Machine Learning1. Metasploit准备1.1 与外部项目的合作1.1.1 启用RPC API1.1.2 使用RPC API操作Metasploit2. 创建机器学习模型2.1 DQN2.2 A3C2.2.1 CartPole2.2.2 分布式学习机制3. 深度利用3.1 代理任务3.2 当…