首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对不同的按钮使用相同的活动,但使用xml资源执行不同的操作

对不同的按钮使用相同的活动,但使用XML资源执行不同的操作是通过在XML资源文件中定义不同的属性值来实现的。具体步骤如下:

  1. 在res目录下的layout文件夹中创建一个XML布局文件,例如activity_main.xml,用于定义界面布局和按钮。
  2. 在res目录下的menu文件夹中创建一个XML菜单文件,例如menu_main.xml,用于定义菜单项。
  3. 在res目录下的values文件夹中创建一个XML资源文件,例如strings.xml,用于定义按钮的属性值。
  4. 在activity的Java文件中,通过findViewById方法获取按钮的实例,并为按钮设置点击事件。
  5. 在按钮的点击事件中,通过获取按钮的属性值,判断执行不同的操作。

下面是一个示例代码:

activity_main.xml:

代码语言:txt
复制
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button1_text" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button2_text" />

</LinearLayout>

menu_main.xml:

代码语言:txt
复制
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/action_settings"
        android:title="@string/action_settings"
        android:showAsAction="never" />
</menu>

strings.xml:

代码语言:txt
复制
<resources>
    <string name="button1_text">Button 1</string>
    <string name="button2_text">Button 2</string>
</resources>

MainActivity.java:

代码语言:txt
复制
public class MainActivity extends AppCompatActivity {

    private Button button1;
    private Button button2;

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

        button1 = findViewById(R.id.button1);
        button2 = findViewById(R.id.button2);

        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 获取按钮1的属性值
                String buttonText = getResources().getString(R.string.button1_text);
                // 执行按钮1对应的操作
                performAction(buttonText);
            }
        });

        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 获取按钮2的属性值
                String buttonText = getResources().getString(R.string.button2_text);
                // 执行按钮2对应的操作
                performAction(buttonText);
            }
        });
    }

    private void performAction(String buttonText) {
        // 根据按钮的属性值执行不同的操作
        if (buttonText.equals(getString(R.string.button1_text))) {
            // 执行按钮1对应的操作
            // ...
        } else if (buttonText.equals(getString(R.string.button2_text))) {
            // 执行按钮2对应的操作
            // ...
        }
    }
}

在上述示例中,我们通过在XML资源文件中定义按钮的属性值,然后在Java代码中获取这些属性值,并根据属性值执行不同的操作。这样就实现了对不同的按钮使用相同的活动,但使用XML资源执行不同的操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

bat批处理命令根据不同操作系统设置不同电源使用方案

直接下发策略远程关机是可以怕有误伤;准备推送策略让电脑休眠,毕竟能省一点是一点吗,接着发现这得每天推送一次脚本,并且遇到加班同事策略就显得呆板了,无法在错过执行时间后继续运行;又考虑了下,想办法更改终端电源方案...,控制显示器关机和睡眠时间,这样只要符合策略系统自己就执行了;继续完善,xp和win7系统更改电源方案命令还不一样;最后决定通过360天擎平台推送批处理脚本,然后脚本根据操作系统执行对应命令,这样终端电源方案被改了...5、使用批处理文件设置不同系统使用不同命令 @echo off ver|find "5.1" if errorlevel 1 goto win7 if errorlevel 0 goto xp :...(5)需要执行命令放在echo 系统名称和goto end中间即可。...6、使用360天擎或者盈高准入推送批处理文件 只要将bat批处理文件推送到对应终端然后执行,这样终端电源计划就被修改了,只要满足条件就会触发。

2.1K10

使用webbench不同web服务器进行压力测试

1、webbench在linux下安装步骤,如果安装过程失败,请检查当前用户执行权限,如果报找不到某个目录错,请自行创建指定目录: #wget http://home.tiscali.cz/~cz210552...distfiles/webbench-1.5.tar.gz #tar zxvf webbench-1.5.tar.gz #cd webbench-1.5 #make && make install 2、安装完成后执行命令...,bytes/sec表示每秒传输字节数,Requests:成功处理请求数,failed:失败请求数。...Requests: 534 susceed, 0 failed. 4、查看linux服务器负载,load average:后3个值分别表示 1分钟 5分钟 15分钟内系统负载情况,一般不要超过系统...服务器测试处理请求数多,且系统负载低,那么就证明这台应用服务器所处架构环境能承载更高并发访问量。

2.9K10

使用 Vagrant 在不同操作系统上测试你脚本

使用 Vagrant 已经很长时间了。我使用几种 DevOps 工具,把它们全安装在一个系统上会搞得很乱。Vagrant 可以让你在不破坏系统情况下随意折腾,因为你根本不需要在生产系统上做实验。...你不能在你自己系统上这样做,因为你运行可能不是你想测试操作系统,或者没有所有的依赖项。启动新云服务器进行测试可能会很费时和昂贵。这就是 Vagrant 派上用处地方。...你可以多次重复这个过程,直到你确信你脚本在所有条件下都能工作。你可以将你 Vagrantfile 提交给 Git,以确保你团队正在测试完全相同环境(因为他们将使用完全相同测试机)。...vagrant snapshot:当前“盒子”进行快照。 试试 Vagrant Vagrant 是一个使用 DevOps 原则进行虚拟机管理工具,久经时间考验。...如果你不开发软件,你喜欢尝试新版本操作系统,那么没有比这更简单方法了。今天就试试 Vagrant 吧! 这篇文章最初发表在 作者个人博客 上,经许可后被改编。

1K10

使用管家婆软件管理工厂不同商品价格

当企业自己生产能力不足或者缺乏某种技术的话,就需要把某个工艺甚至整个产品交给外面的厂商去进行生产,要管理加工单位不同商品单价,可以参考下面说明设置。...业务录入-委外加工-委外加工单价管理;此功能可设置各商品对应委外单位加工单价和含税单价等信息,设置后可在委外任务单、委外完工单、MRP运算中自动读取加工单价 字段详解: 上次加工单价:读取对应加工单位上次委外完工单加工单价...1、查询条件支持按商品和单位查询 2、做委外任务单或委外加工完工单时候会根据选择加工单位自动带出对应加工单价,如图: 如果某单位发生加工单价历史记录,影响这个单位最近加工单价和没有单位这个商品最近加工单价...MRP运算里生成委外建议界面也会根据对应加工单位带出加工单价信息

13.9K140

使用高斯混合模型不同股票市场状况进行聚类

我们可以根据一些特征将交易日状态进行聚类,这样会比每个每个概念单独命名要好的多。...因此,当使用监督机器学习算法时,预测变量是明确定义。一个非常简单强大监督学习例子是线性回归。通过x预测y 高斯混合模型(GMM) 高斯混合模型是p维空间中多个正态分布重叠。...第 1步:随机初始化起始正态分布参数 第 2 步:执行E步(Expectation),根据当前参数值,计算样本隐藏变量期望; 第 3 步:执行M步(Maximum),根据当前样本隐藏变量,求解参数最大似然估计...使用符合 GMM 宏观经济数据美国经济进行分类 为了直观演示 GMM,我将使用二维数据(两个变量)。每个对应簇都是三个维度多正态分布。...给定二维数据,GMM 能够产生三种不同状态。 最后,如果要创建一个有意义模型,应该考虑更多变量。实际上一系列不同指标构成了美国经济及其表现。

1.6K30

Python使用折线图、柱状图、热力图比较不同班级相同学号学生成绩

问题描述:有些学校学号最后两位是根据入学成绩顺序排,那么入学之后同学们学习状态是否会有变化呢,入学成绩较好同学是否能够一直保持优势呢,会不会有同学是高考时没有发挥好而入学之后才暴露出真实实力呢,...又会不会有高中没有认真学习同学大学入学以后奋发图强一路拼杀到前几名呢?...如果没有这些情况的话,应该是图形比较稳定,不同班级之间相同学号学生成绩比较接近,并且班级之间和班内同学之间相对优势变化很小。...技术要点:使用折线图、柱状图、热力图绘制不同班级学生某门课程成绩,以作对比。其中折线图和柱状图比较好看懂,就不多解释了。...热力图也是用来查看数据表中多个特征两两相似程度常用可视化技术,可以使用基于matplotlibPython扩展库seaborn绘制,当然该库还支持更多可视化图形绘制。 参考代码: ?

1.5K50

Python中使用deepdiff对比json对象时,对比时如何忽略数组中多个不同对象相同字段

最近忙成狗了,很少挤出时间来学习,大部分时间都在加班测需求,今天在测一个需求时候,需要对比数据同步后数据是否正确,因此需要用到json对比差异,这里使用deepdiff。...一般是用deepdiff进行对比时候,常见对比是对比单个json对象,这个时候如果某个字段结果有差异时,可以使用exclude_paths选项去指定要忽略字段内容,可以看下面的案例进行学习:...那么如果数据量比较大的话,单条对比查询数据效率比较低,因此,肯呢个会调用接口进行批量查询,然后将数据转成[{},{},{}]列表形式去进行对比,那么这个时候再使用exclude_paths就无法直接简单排除某个字段了...从上图可以看出,此时对比列表元素的话,除非自己一个个去指定要排除哪个索引下字段,不过这样当列表数据比较多时候,这样写起来就很不方便,代码可读性也很差,之前找到过一个用法,后来好久没用,有点忘了,今晚又去翻以前写过代码记录...,终于又给我找到了,针对这种情况,可以使用exclude_regex_paths去实现: 时间有限,这里就不针对deepdiff去做过多详细介绍了,感兴趣小伙伴可自行查阅文档学习。

58220

dotnet C# 如何使用 MemoryFailPoint 检查是否有足够内存资源执行操作

为了避免这些异常,您可以使用 MemoryFailPoint 类型来检查是否有足够内存资源执行操作。 在 .NET 7 中,MemoryFailPoint 类型仍然可用。...MemoryFailPoint 可以在执行一个操作之前检查是否有足够内存资源。...如果构造函数成功返回,那么表示有足够内存资源,可以继续执行操作。当 MemoryFailPoint 对象被销毁时,它会释放之前保留内存资源。...当应用程序需要在多线程环境中并发执行多个内存密集型操作时,可以使用 MemoryFailPoint 来控制并发度,避免出现内存竞争或争用问题。...以上就是我为你编写关于 MemoryFailPoint 博客,希望你有帮助。

71130

禅道 给禅道缺陷增加自定义字段供不同缺陷操作页面使用

给禅道缺陷增加自定义字段供不同缺陷操作页面使用 by:授客 QQ:1033553122 实践环境 禅道项目管理软件9.2.1 、8.0开源Linux版 需求描述 在禅道创建、修改、查看、关闭缺陷页面添加一个自定义字段...---一个单选下拉选框,并针对不同页面做是否必填校验。...注意:笔者使用禅道,语言设置是中文,所以仅修改zh-cn.php,不修改英文en.php和tw.php 修改zentaopms/module/bug/view/create.html.php 如下图...需要注意地方 本人实践时,想在关闭页面,把自定义字段也设置为必填,于是参考上面,在合适位置插入下图图示框选部分代码,结果发现,自定义字段select选框右侧有红色 * (见下图),但是提交关闭Bug...如下,找到$config->bug->list->exportFields变量,增加新增自定义字段名称,解决缺陷导出报表中没有新增字段问题,如下 ?

2.6K30

java Spring系列之 配置文件操作 +Bean生命周期+不同数据类型注入简析+注入原理详解+配置文件中不同标签体使用方式

Spring系列之 配置文件操作 写在文章前面: 本文带大家掌握Spring配置文件基础操作以及带领大家理清依赖注入概念,本文涉及内容广泛,如果各位读者耐心看完,应该会对自身有一个提升 ?...Spring配置文件作用 Spring配置文件是用于Spring工厂进行Bean生产,依赖关系注入,Bean实例分发图纸,他类似于人类大脑,我们必须掌握这张图纸使用方法,才能进行相关操作,灵活运用这张图纸准确表达自己意图...使用上述方法缺点:代码耦合度过高 使用Spring框架操作 这里以配置一个User类为例,UserImp为接口,User为其实现类,我们使用一个 UserImp接口去接受一个User实现对象,代码如下...; } } 运行结果 成功执行 ?...,在使用Spring之后,交给Spring来管理,简单来说就是让框架来完成持久层传入业务层操作

1.8K20

【Android 屏幕适配】屏幕适配通用解决方案 ① ( 定义 dimens.xml 方案 | 使用 ScreenMatch 插件生成不同屏幕分辨率 dimens.xml 配置 )

文章目录 一、屏幕适配通用解决方案 二、ScreenMatch 插件使用 安装 ScreenMatch 插件 生成 dimens.xml 文件 配置 dimens.xml 文件生成选项 参考文档 :...设备兼容性概览 屏幕兼容性概览 支持不同像素密度 声明受限屏幕支持 一、屏幕适配通用解决方案 ---- 目前存在两种通用屏幕适配解决方案 : ① 方案一 : 自定义控件 , 自定义 ViewGroup...控件 , 也就是写布局组件 ( LinearLayout / RelativeLayout 等组件 ) 子类 , 在其中布局测量 onMeasure 方法中进行控件测量操作 ; ② 方案二 :...; 首次执行操作 , 会提示 " 路径下文件找不到 " ; 会生成如下目录文件 ; 在工程根目录下生成了 screenMatch_example_dimens.xml 配置文件...右键点击 Module 应用目录 , 然后在弹出菜单中 选择 ScreenMatch 选项 , 选中 指定 Module 后 , 点击 ok 按钮 ; 此时会弹出 " Over , adapt

1.4K21

【Kotlin 协程】协程取消 ③ ( finally 释放协程资源 | 使用 use 函数执行 Closeable 对象释放资源操作 | 构造无法取消协程任务 | 构造超时取消协程任务 )

文章目录 一、释放协程资源 二、使用 use 函数执行 Closeable 对象释放资源操作 三、使用 withContext(NonCancellable) 构造无法取消协程任务 四、使用 withTimeoutOrNull...函数构造超时取消协程任务 一、释放协程资源 ---- 如果 协程中途取消 , 期间需要 释放协程占有的资源 ; 如果执行协程任务中 , 需要 执行 关闭文件 , 输入输出流 等操作 , 推荐使用...22:06:06.510 I 退出协程作用域 二、使用 use 函数执行 Closeable 对象释放资源操作 ---- 使用 use 函数 可以在 程序结束时 , 执行实现了 Closeable...对象 close 方法 , 该操作适合文件对象关闭文件使用 ; use 函数原型如下 : /** * 在这个资源执行给定[block]函数,然后正确关闭它,不管是否异常 * 是否被抛出。...代码块代码肯定会执行 , 但是如果 finally 中 delay 挂起函数以及之后代码将不会被执行 ; 使用 withContext(NonCancellable) {} 代码块 , 可以构造一个无法取消协程任务

1.3K10

【Android开发基础系列】Android开发学习专题

资源目录res中values目录中除了strings.xml 文件,还可以包含colors.xml和styles.xml文件,这两种文件也是Android中标准资源文件。         ...AndroidManifest.xml文件经过Android打包工具(aapt)处理后形成二进制格式AndroidManifest.xml文件,实质内容与以前相同。         ...为了保证不同控件具有不同处理,可以由onClick()函数参数进行判断,参数是一个View类型,通过getId()获得它们ID,使用switch…case分别进行处理。...使用这个类可以进行一些更为细节设置和操作。...Dialog程序运行结果如图所示: 通过点击屏幕上不同按钮(第4个按钮除外)将会启动不同对话框。

30320

Android开发:最全面、最易懂Android屏幕适配解决方案

图片类型 假设需要匹配不同屏幕大小,你图片资源也必须自动适应各种屏幕尺寸 使用场景:一个按钮背景图片必须能够随着按钮大小改变而改变。...在类似情况下,通常可以在多个活动中重复使用相同 Fragment 子类以避免代码重复。...也就是说,如果用户处于纵向模式下且屏幕上显示是用于阅读报道活动,那么就需要在检测到屏幕方向变化(变成横向模式)后执行相应操作,即停止上述活动并返回主活动,以便在双面板布局中显示相关内容: public...,如果有某个分辨率缺少,将无法完成该屏幕适配 过多分辨率像素描述xml文件会增加软件包大小和维护难度 ---- “图片资源”匹配 本质:使得图片资源不同屏幕密度上显示相同像素效果 做法:提供备用位图...更好地方案解决“图片资源”适配问题 上述方案是常见一种方案,这固然是一种解决办法,缺点在于: 每套分辨率出一套图,为美工或者设计增加了许多工作量 Android工程文件apk包变很大 那么,有没有一种方法

2.6K70

Carson带你学Android:最全面、最易懂屏幕适配解决方案

图片类型 假设需要匹配不同屏幕大小,你图片资源也必须自动适应各种屏幕尺寸 使用场景:一个按钮背景图片必须能够随着按钮大小改变而改变。...在类似情况下,通常可以在多个活动中重复使用相同 Fragment 子类以避免代码重复。...也就是说,如果用户处于纵向模式下且屏幕上显示是用于阅读报道活动,那么就需要在检测到屏幕方向变化(变成横向模式)后执行相应操作,即停止上述活动并返回主活动,以便在双面板布局中显示相关内容: public...,如果有某个分辨率缺少,将无法完成该屏幕适配 过多分辨率像素描述xml文件会增加软件包大小和维护难度 “图片资源”匹配 本质:使得图片资源不同屏幕密度上显示相同像素效果 做法:提供备用位图(...更好地方案解决“图片资源”适配问题 上述方案是常见一种方案,这固然是一种解决办法,缺点在于: 每套分辨率出一套图,为美工或者设计增加了许多工作量 Android工程文件apk包变很大 那么,有没有一种方法

1.3K10

Android学习笔记,不断更新

Android笔记 IDE:Android Studio 文章目录 Android笔记 新建工程 详解项目中文件资源 详解res目录文件资源 引用res目录下资源活动使用toast 销毁当前活动...通过调用setOnClicklistener()方法为按钮注册一个监听器,点击按钮时就会执行监听器中onClick()方法。 ​...你应该在这个方法中完成活动初始化操作,比如说加载布局、绑定事件等。 ​ onStart()。这个方法在活动由不可见变为可见时候调用,资源进行加载。 ​ onResume()。...我们通常会在这个方法中将一些消耗CPU 资源释放掉,以及保存一些关键数据,这个方法执行速度一定要快,不然会影响到新栈顶活动使用。 ​ onStop()。...这个方法在活动完全不可见时候调用,资源进行释放。

1K40

安卓 topic-菜单 Menu

使用 XML 定义菜单 对于所有菜单类型,Android 提供了标准 XML 格式来定义菜单项。您应在 XML 菜单资源中定义菜单及其所有项,而不是在 Activity 代码中构建菜单。...使用菜单资源是一种很好做法,原因如下: 更易于使用 XML 可视化菜单结构 将菜单内容与应用行为代码分离 允许您利用应用资源框架,为不同平台版本、屏幕尺寸和其他配置创建备用菜单配置 以下是名为 game_menu.xml...通过此方法,您可以将菜单资源使用 XML 定义)扩充到回调中提供 Menu 中。...此模式是 ActionMode 系统实现,它将在屏幕顶部显示上下文操作栏,其中包括影响所选项操作项目。当此模式处于活动状态时,用户可以同时多项执行操作(如果应用允许)。...提供命令语句另一部分(例如,标记为“添加”且使用不同“添加”选项生成弹出菜单按钮)。 提供类似于 Spinner 且不保留永久选择下拉菜单。

2.6K20

安卓入门-第二章-探究活动

这里添加了一个Button元素,并在Button元素内部增加了几个属性。android:id 是给当前元素定义一个唯一标识符,之后可以在代码中这个元素进行操作。  ...在第1章介绍项目资源时候我曾提到过,项目中添加任何资源都会在R文件中生成一个相应资源id,因此我们刚才创建first_layout.xml 布局id现在应该是已经添加到R文件中了。...得到按钮实例之后,我们通过调用setOnClickListener()方法为按钮注册一个监听器,点击按钮时就会执行监听器中onClick()方法。...需要注意是,虽然我们声明了ThirdActivity是可以响应打开网页Intent实际上这个活动并没有加载并显示网页功能,所以在真正项目中尽量不要出现这种有可能误导用户行为,不然会让用户我们应用产生负面的印象...我们通常会在这个方法中将一些消耗CPU资源释放掉,以及保存一些关键数据,这个方法执行速度一定要快,不然会影响到新栈顶活动使用。 onStop():这个方法在活动完全不可见时候调用。

2.9K20

Android开发之Activity创建跳转及传值

活动创建后会在资源目录中生成三个文件,如下图所示,java中SecondActivity文件有前面的"C"标志可知,是JavaClass文件,也就是Activity对应源文件。...控件添加 往Activity中添加控件就需要操作我们Layout文件夹下Activity所对应xml文件了。...当然如果xml布局属性较为了解,就可以使用纯代码去声明和布局你控件。 ? (2)在代码中获取控件 经过上面的步骤,已经声明并配置好了一个button。...就是给button赋一个点击按钮执行方法。点击按钮就会执行下方回调方法,并且可以通过Toast进行内容提示。...点击SecondActivity中Back按钮就会执行finish()方法返回上一个Activity。 ? 2.

3.2K100
领券