首页
学习
活动
专区
工具
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.3K10

使用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使用折线图、柱状图、热力图比较不同班级相同学号学生的成绩

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

    1.5K50

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

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

    91320

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

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

    81030

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

    给禅道缺陷增加自定义字段供不同的缺陷操作页面使用 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.7K30

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

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

    1.9K20

    如何以不同于认证用户的其它用户身份使用 VSCode 远程资源管理器

    在使用远程服务器(例如: 虚拟机)时,有时您需要切换到不同的用户,例如:短时间内获得更高的权限。...通常可以使用以下命令之一来完成: $ su $ sudo -i -u 但如果你想使用 VSCode 时更轻松地探索文件系统和编辑代码...比如:登录用户为 mike,而您想在 VSCode 资源管理器中访问 root 用户的主目录。...该选项与 -t 和 -T 标志相同。如果你不加上这个选项,通过 SSH 命令行登陆时将无法正常登陆。 如果远程服务器可以访问互联网,那就已经配置完成了。 否则,您需要采取以下两个步骤中的一个。...因为 VSCode 会在会话开始时使用 wget 下载必要的二进制文件。

    40510

    【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

    2.2K21

    对于使用 C 语言开发的跨平台应用,如何解决不同操作系统和硬件架构带来的底层差异和兼容性问题?

    在使用C语言开发跨平台应用时,可以采取以下方法来解决不同操作系统和硬件架构带来的底层差异和兼容性问题: 使用平台无关的标准库:使用C语言标准库提供的函数和数据类型,避免直接使用操作系统特定的函数和数据类型...使用条件编译:通过使用预处理指令,可以根据不同的操作系统或硬件架构定义不同的代码块,使得在不同平台上编译时只编译相应平台的代码。...封装特定的系统调用:将系统调用封装成通用的函数或接口,通过这一层间接调用系统功能,可以实现对不同操作系统的适配。...使用第三方跨平台库:利用第三方跨平台库,如Boost、GTK+、Qt等,这些库提供了一套统一的API,可以方便地在不同操作系统中使用相同的代码。...总体来说,开发跨平台应用需要充分了解不同操作系统和硬件架构的特性和差异,使用合适的技术手段来解决底层差异和兼容性问题,确保应用程序在不同平台上的稳定运行。

    12810

    【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.4K10

    【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个按钮除外)将会启动不同的对话框。

    33320

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

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

    3.1K70

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

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

    1.5K11

    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.7K20
    领券