Android开发基础————通过内部类实现按钮点击事件

Android开发基础————通过内部类实现按钮点击事件

首先是代码实现:

javapublic class ButtonActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button);
        //通过id绑定按钮
        Button btn = findViewById(R.id.btn1);
        //创建对象
        MyOnClickListener mcl = new MyOnClickListener();

        //设置监听器
        btn.setOnClickListener(mcl);
    }
        //创建内部类
        class MyOnClickListener implements View.OnClickListener{

            @Override
            public void onClick(View v) {
                //在控制台输出语句
                Log.e("TGA","刚刚点击了使用内部类实现点击事件的按钮");
            }
        }
    }


代码详解:

关于内部类实现点击效果的实现:
1.首先利用findById 找到对应按钮的id (在xml文件里面设置的id)
作用就是将在xml文件中的id与btn1所绑定

  Button btn = findViewById(R.id.btn1);
2.点击事件 为btn添加监听器 作用是时刻监听这个按钮有没有被点击,如果一旦被点击则会触发它
   //代码实现 
    btn.setOnClickListener(xx);  //根据这个setOnClickListener方法其实是要求传入一个实现OnClickListener接口的一个对象 这里先用“xx”替代
3.根据要求我们现在创建一个类去实现这个接口
    //方案一:使用内部类实现这个接口。  tips:当然我们还可以去使用匿名内部类去实现(在下一文章会进行详细的讲解)
    class myOnClickListener implements OnClickListener{
            //根据接口要求得去重写接口内部的onClick方法
            @Override
            public void onClick(View v) {
                //在控制台输出语句作为提示
                Log.e("TGA","刚刚点击了使用内部类实现点击事件的按钮");
            }           
    }
这样我们就完成了这个接口实现类

4.根据setOnClickListener方法 要求我们传入这个内部类的对象,我们就给他new一个对象
 myOnClickListener mcl = new myOnClickListener();
5. 最后一步把那个“xx” 换成刚刚 new 出来的内部类对象 mcl 即可。
  btn1.setOnClickListener(mcl);

是不是很简单~~下面我们点击运行之后看看效果:

点击运行后点击
我们点击第一个按钮看看效果:
点击第一个按钮控制台输出语句
在控制台中打印出了我们的文字。

====================================================================================

下面贴出xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".ButtonActivity">
    <Button
        android:id="@+id/btn1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="自定义内部类的方法实现的点击事件"/>
    <Button
        android:id="@+id/btn2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="自定义内部类的方法实现的点击事件2"/>
    <Button
        android:id="@+id/NoName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="匿名内部类的方法实现的点击事件"/>
    <Button
        android:id="@+id/activity"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="当前Activity实现的点击事件的接口"/>
    <Button
        android:id="@+id/firstButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="在xml文件中绑定"/>

</LinearLayout>

下一篇:通过匿名内部类实现按钮点击事件

最后完结撒花~~~ 若有问题请大佬指正。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前言 第一部分 准备篇 第1章 Android开发简介 1.1 Android基本概念 1.1.1 Android简介 1.1.2 Android的系统构架 1.1.3 Android应用程序框架 1.2 OMS介绍 1.2.1 OPhone介绍 1.2.2 Widget介绍 1.3 小结 第2章 Android开发环境搭建 2.1 Android开发准备工作 2.2 开发包及其工具的安装和 配置 2.2.1 安装JDK和配置Java开发 环境 2.2.2 Eclipse的安装与汉化 2.2.3 SDK和ADT的安装和 配置 2.3 创建第一个Android项目——HeUoAndroid 2.3.1 创建HelloAndroid项目 2.3.2 运行HelloAndroid及模拟器的使用 2.3.3 调试HelloAndroid 2.4 小结 第二部分 基础篇 第3章 Android程序设计基础 3.1 Android程序框架 3.1.1 Android项目目录结构 3.1.2 Android应用解析 3.2 Android的生命周期 3.3 Android程序U设计 3.4 小结 第4章 用户界面开发 4.1 用户界面开发详解 4.1.1 用户界面简介 4.1.2 事件处理 4.2 常用控件应用 4.2.1 文本框(Textiew) 4.2.2 列表(ListView) 4.2.3 提示(T0ast) 4.2.4 编辑框(EditText) 4.2.5 单项选择(RadioGroup、RadioButton 4.2.6 多项选择(CheckBox) 4.2.7 下拉列表(Spinner) 4.2.8 自动提示(AutoComplete.TextⅥew) 4.2.9 日期和时间(DatePicker、TimePicker) 4.2.10 按钮(Button) 4.2.1l 菜单(Menu) 4.2.12 对话框(Dialog) 4.2.13 图片视图(ImageView) 4.2.14 带图标的按钮(ImageButton) 4.2.15 拖动效果(Gallery) 4.2.16 切换图片(hmgeSwilcher) 4.2.17 网格视图(GridView) 4.2.18 卷轴视图(ScrollView) 4.2.19 进度条(ProgressBar) 4.2.20 拖动条(SeekBar) 4.2.21 状态栏提示(Notification、NotificationManager) 4.2.22 对话框中的进度条(ProgressDialog) 4.3 界面布局 4.3.1 垂直线性布局 4.3.2 水平线性布局 4.3.3.相对布局(RelativeLayout) 4.3.4 表单布局(TableLayout) 4.3.5 切换卡(TabWidget) 4,4 小结 第5章 Android游戏开发 5.1 Android游戏开发框架 5.1.1 View类开发框架 5.1.2 SurfaceView类开发框架 5.2 Graphics类开发 5.5.1 Paint和Color类介绍 5.2.2 Canvas类介绍 5.2.3 几何图形绘制 5.2.4 字符串绘制 5.2.5 图像绘制 5.2.6 图像旋转 5.2.7 图像缩放 5.2.8 图像像素操作 5.2.9 Shader类介绍 5.2.10 双缓冲技术 5.2.11 全屏显示 5.2.12 获得屏幕属性 5.3 动画实现 5.3.1 Tween动画 5.3.2 Frame动画 5.3.3 GIF动画播放 5.4 小结 第6章 Android数据存储 6.1 Android数据存储初探 6.2 数据存储之Shared Preferences 6.3 数据存储之Files 6.4 数据存储之Network 6.5 Android数据库编程 6.5.1 SQLite简介 6.5.2 SQLite编程详解 6.5.3 SQLiteOpenHelper应用 6.6 数据共享(ContentProviders) 6.7 小结 第7 章多媒体开发 7.1 多媒体开发详解 7.1.1 Open Core 7.1.2 MediaPlayer 7.1.3 MediaRecorder 7.2 播放音乐 7.3 播放视频 7.4 录制歌曲 7.5 相机设置 7.6 闹钟设置 7.7 铃声设置 7.8 小结 第8章 网络与通信 8.1 网络通信基础 8.1.1 无线网络技术 8.1.2 Android网络基础 8.2 HTTP通信 8.2.1 HttpURLConnection接口 8.2.2 HttpClient接口 8.2.3 实时更新 8.3 Socket通信 8.3.
Android应用中,我们经常需要为多个按钮添加点击事件监听器。如果每个按钮都有一个单独的监听器,这样会让我们的代码显得非常冗长。在这种情况下,我们可以使用单个监听器来监听多个按钮点击事件。 要实现此功能,我们可以在Activity中实现OnClickListener接口,并在onClick方法中根据被点击的按钮来执行相应的操作。具体步骤如下: 1.为所有需要添加监听器的按钮设置相同的id,例如: ``` <Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button 1" /> <Button android:id="@+id/btn2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button 2" /> ``` 2.在Activity中实现OnClickListener接口,并在onClick方法中根据被点击的按钮来执行相应的操作,例如: ``` public class MainActivity extends AppCompatActivity implements View.OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 为所有需要添加监听器的按钮设置相同的id Button btn1 = findViewById(R.id.btn1); Button btn2 = findViewById(R.id.btn2); // 为所有按钮添加同一个监听器 btn1.setOnClickListener(this); btn2.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn1: // 处理按钮1的点击事件 break; case R.id.btn2: // 处理按钮2的点击事件 break; default: break; } } } ``` 通过这种方式,我们可以使用单个监听器来监听多个按钮点击事件,代码更加简洁和易于维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值