OnClickListener启动对应按钮的Activity

OnClickListener是什么?理解和使用OnClickListener接口 需要注意的是,setOnClickListener方法接受一个OnClickListener对象作为参数,可以直接使用匿名内部类实现OnClickListener接口,也可以单独创建一个实现了OnClickListener接口的类,并将其实例传递给setOnClickListener方法。OnClickListener接口主要用于处理点击事件,当用户点击指定的视图时,会触发OnClickListener接口中定义的回调方法,开发者可以在回调方法中实现自己的逻辑。 阅读详情

这阵子在写一个android小程序。主要是控制路由的。其实就是网页版的android实现方式。

大概就是:apk启动的时候,首页有三个按钮,三个按钮分别对应不同的设置。

分别是:1、ADSL设置;2、DHCP设置;3、静态IP设置。分别有一个按钮对应进入各自的设置界面

一开始,我直接用的类似

btn_adsl.setOnClickListener(new OnClickListener(){
<span style="white-space:pre">	</span>@Override
<span style="white-space:pre">	</span>public void onClick(View v){
<span style="white-space:pre">		</span>Intent intent = new Intent();
		intent.setClass(Context, class);
		startActivity(intent);
<span style="white-space:pre">	</span>}
}
这样的方式的话,三个按钮,就要写三个类似的实现代码。最近越看越不爽,就想改了它,把它做成根据各自按钮的事件,自动启动对应的activity,但使用的是同一段代码


一开始,在网上找了下。网上介绍了两种方法:

1、一种是通过设置tag的方式,大概如下

    btn_adsl.setOnClickListener(this);

    btn_adsl.setTag(1);

然后有个函数:

public void onClick(View v){
switch((Integer)v.getTag()){
case 1:
/////TODO
break;
case 2:
/////TODO
break;
default:
break;
}

}


2、另一种是通过判断id来实现,大概如下:

btn_adsl.setOnClickListener(this);

public void onClick(View v){
switch(v.getId()){
case R.id.btn_adsl:
/////TODO
break;
case R.id.btn_dhcp:
/////TODO
break;
default:
break;
}
}


但上面两种方式来说,没有实际上的差别。因为还是用的不同的分支去实现。而我要的,就只是同一段代码,根据按钮设置监听事件时所带的参数,来启动各自的界面。

后面我写了一个类,大概如下:

class ActivityListener implements OnClickListener{
		
		Activity act;
		
		public ActivityListener(Activity act){
			this.act = act;
		}
		
		public void onClick(View v){
			Intent intent = new Intent();
			intent.setClass(TabMenu.this, act.getClass());
			startActivity(intent);
		}
	}

就是在new一个ActivityListener的时候,传递不同的Activity参数下去。

最终的调用方式如下:

btn_adsl.setOnClickListener(new ActivityListener(new ADSLSetting()));

btn_dhcp.setOnClickListener(new ActivityListener(new DHCPSetting()));

btn_staticip.setOnClickListener(new ActivityListener(new StaticIPSetting()));

其中

public class ADSLSetting extends Activity {

/////////////////TODO

}


语言组织的不好。大概的方式就差不多这样。

国内环境快速部署Dify:镜像导入与compose配置实战 Docker镜像导入是解决国内网络环境下容器部署难题的常用方案,其原理是将镜像文件离线加载到本地,避免从远程仓库拉取时的超时问题。在AI应用编排平台Dify的部署中,这一方法能有效绕过镜像拉取失败、版本不一致等障碍,确保LLM工作流、RAG检索等模块稳定运行。通过docker load导入镜像包,结合docker-compose配置环境变量与启动顺序,开发者可在内网或本地快速搭建Dify服务,并利用镜像包实现离线迁移与版本回滚。 阅读详情

相关推荐

页面跳转OnClickListener

页面跳转OnClickListener,描述页面跳转的5种方法

android获取当前activity view,Android中如何通过View获取Activity

在开发过程中,我们会遇到下面情况:Button button = (Button) findViewById(R.id.btn);button.setOnClickListener(MainActivity.this);if(button instanceof AppCompatButton){Log.d("HHHHH","====button is appCompatButton====");}...

weixin_42544838的博客 2967

在PyCharm中配置使用Anaconda环境

在PyCharm中配置使用Anaconda环境一、步骤1.Anaconda2.PyCharm总结 一、步骤 1.Anaconda 如未安装Anaconda可至其官网下载,学习使用个人版就可以了。 下载地址:https://www.anaconda.com/products/individual 1、打开Anaconda Navigator,点击Environments可以看到anaconda中已经有了默认的“base”环境,其中包含了大多数我们会用到的包,在PyCharm中可以直接使用该环境,而无需自行下载

TuckX的博客 19万+

Android OnClick跳转Activity的初步

最近忙完了比赛之类的事情,准备下一步进入Android的旅程。就以这篇小记作为自己的启程吧。   页面跳转,开发过Windows下的桌面程序的人都知道是用窗口实现的,而android的窗口就是Activity,顾名思义,激活的东东,我们第一眼能看到的,废话不多说了。上代码。 MainActivity的源码 package com.example.activity; import andro

sb_oy的专栏 2386

OpenCLI入门:让任何网站变成你的命令行工具(超详细版)

最有用的工具,往往是最简单的。 opencli就是这样。 它不会帮你写代码,不会帮你做决策,但它能把200+个平台装进你的命令行。 让你用最简单的方式,获取最丰富的数据。

weixin_66295112的博客 2088

LeGO-LOAM运行kitti数据集

文章目录1. kitti-lego-loam2. 改动3. 实验结果4. evo轨迹测评 1. kitti-lego-loam 链接:kitti-lego-loam kitti-lego-loam提供了将kitti序列转化成rosbag的代码,在kittibag中. 需要注意下数据文件的存放顺序,以00序列为例: datafolder          |____results          &

Zlp19970106的博客 8702

android onclicklistener 得到 activity,不兼容类型:Mainactivity不能转换为OnClickListener

我正面临同样的问题,并以下面的方式解决它。public class MainActivity extends Activity {protected Button delhi_University;protected Button indraprastha_University;protected Button private_University;@Overrideprotected void ...

weixin_42315616的博客 991

【第三只眼:Oracle通过归档日志查看系统的业务高峰sql】

根据oracle归档的业务高峰量,查找业务sql,进行优化

霍然的专栏 577

Activity中onClick事件3种写法

3种写法实现的功能和效果相同。 Java文件 view plaincopy to clipboardprint? package com.wyw.demo;       import android.app.Activity;    import android.os.Bundle;    import android.view.View;    import androi

水墨青花的专栏 801

零基础入门simulink建模仿真--基于Simulink的QPSK调制与解调仿真建模示例

QPSK是一种相位调制技术,将两个比特映射到一个符号上,每个符号对应四个可能的相位之一(0°、90°、180°、270°)。通过Simulink,我们可以通过模块化的建模方式实现QPSK的调制和解调过程,并观察信号在信道中的传输效果。通过本指南,我们介绍了如何基于Simulink搭建一个完整的QPSK调制与解调仿真模型,并进行仿真和性能评估。背景介绍:理解QPSK调制与解调的基本原理及其应用。所需工具和环境:列出进行QPSK仿真所需的工具和环境。步骤详解。

amy_mhd的博客 1306

SAP-ABAP:新手入门篇——从0到1写出你的第一个ABAP Hello World程序并完成调试运行

本文是ABAP开发入门指南,详细介绍如何创建并运行第一个"Hello World"程序。主要内容包括:通过SE38事务码进入ABAP编辑器;创建以Z/Y开头的程序并保存为本地对象;编写简单的WRITE输出语句;完成语法检查、激活和执行流程;以及初步体验调试功能。文章特别强调ABAP开发的规范要求,如程序命名规则、激活与保存的区别等,并提供了详细的步骤说明和常见问题提示,帮助零基础开发者快速上手ABAP编程。

baidu_35680696的博客 478

[Android]使用ActivityGroup来切换Activity和Layout

一、效果图          要求点击底部不同图片按钮切换不同的Activity,并在中间显示Activity对应的ContentView。 二、 实现代码     2.1  layout.xml <?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="...

weixin_33858249的博客 127

实战:利用 Agent Harness 自动化 PPT 制作

本文将带你从零开始,用轻量级Agent编排框架,结合主流大模型(GPT-4o、通义千问、文心一言等),搭建一套全自动化的PPT生成工作流:从用户输入自然语言需求,到需求解析、大纲生成、内容填充、数据匹配、排版美化、导出成品,全程不需要手动操作,最快10分钟就能产出符合要求的PPT。我们不会讲晦涩的Agent理论,所有步骤都有可直接运行的代码示例,哪怕你只有基础的Python语法基础,也能跟着一步步做出能用的自动PPT工具。

AI Agent Harness Engineering 569

Android按钮激活Activity方法四

public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button button1,button2; @Override protected void onCreate(Bundle savedInstanceState) { ...

fang156239305的博客 515

量子编程专业权威教程(十四):Shor 算法

本文系统阐述了Shor算法的原理与实现,重点解析了将大数分解问题转化为周期寻找问题的数论基础,以及模幂运算量子电路的设计方法。通过以N=15为例的完整算法流程演示,展示了量子计算在因数分解问题上的指数级优势。文章详细拆解了受控幺正操作构建、量子傅里叶变换应用等关键技术环节,并提供了可复现的Qiskit代码实现。同时指出了当前量子硬件在比特数、相干时间和错误率等方面面临的工程挑战,这些限制使得分解大整数仍需长期技术突破。该研究为理解量子计算优势提供了典型范例,对后量子密码学发展具有重要启示意义。

分享知识,拥抱变化 797

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Android 按钮的启动方式

按钮的四种实现方式第一种 setOnClickListener第二种 自定义一个类,实现View.OnClickListener接口第三种 在布局文件中设置onClick属性第四种 类本身实现View.OnClickLinstener接口 Android中都是靠点击实现和用户交互的。所以点击的实现方式一定要全部搞懂。 先把布局和代码贴出来,超级简单的布局 <?xml version="1.0...

DK_long_teng的博客 410

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Android中控件的onClickListener,点击监听器

以前使用button,text等控件时,每个onClickListener都要写一个,挺麻烦的! 今天看到了个新方法(可能大家都是这么用的,鄙人不知),写了加深记忆吧! -------------------------------------------------------------------------------------- 方法如下: 1)在Activity中继承接口

wds56278的专栏 774

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

activity 怎么用 java_java-如何在适配器中启动Activity?

java-如何在适配器中启动Activity?我的自定义适配器具有ListActivity。 并且在每个视图内部,它可能都有一些按钮,在这些按钮中我需要实现OnClickListener。 我需要在适配器中实现OnClickListener。 但是,我不知道如何调用诸如startActivity()或setResult()之类的函数。 因为适配器不会扩展到活动。那么解决这个问题的最佳方法是什么? ...

weixin_35851553的博客 247

OnclickListener与View.OnclickListener

在学习Android的时候,写到一个代码 package com.mis.www; import android.app.Activity; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Inten...

takecrazy的博客 956

The method setOnClickListener(View.OnClickListener) in the type View is not applicable

import android.app.Activity; import android.os.Bundle; import android.widget.Button; import android.content.DialogInterface; import andr

arkzheng的专栏 7467

android 按钮切换activity和打开网页

// android 按钮切换activity 和 打开网页 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.i

bibby28的专栏 633

android 多个onclicklistener,Android – 多个OnClickListener?

我有4张图片.我们应该能够点击这些图像.我想知道我是否必须创建4个OnClickListener,还是有另一种方法可以正确地执行此操作?public class NavigateActivity extends Activity implements OnClickListener {// imagesprivate ImageView phone;private ImageView booki...

weixin_39828715的博客 216

Android studio点击一个按钮跳到另一个activity

跟点击文本跳转差不多,都是先要几号按钮的id,然后在mainactivity,新建button对象,在create里面设置好button对应的id,R.id.__,然后创建onclickListener函数,创建intent对象,函数有两个参数,一个是当前活动,另一个是跳转活动,startActivity(Intent)。 ...

qq_43246404的博客 1万+

启动另一个Activity

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //启动另一个activity findViewById(R.id.button

Sunlight 400

Android 开发笔记(一) 按钮事件调用Activity

UI创建按钮及事件 Button mEmailSignInButton = (Button) findViewById(R.id.email_sign_in_button);mEmailSignInButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) {  ...

weixin_30702413的博客 147
上一篇: android客户端控制PC音量
下一篇: gdb自动运行
rfasm
博客等级 码龄17年 2粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值