首页 > 其他分享 >Android期末复习

Android期末复习

时间:2023-06-28 21:12:57浏览次数:35  
标签:复习 button 期末 void 监听器 Override Android onCreate public

在 Android 中实现事件监听器的几种常用方式:

  1. 内部类:可以在 Activity 或 Fragment 中定义内部类来实现事件监听器,这种方式比较简单,但是会增加代码的复杂度。
  2. 匿名内部类:可以使用匿名内部类来实现事件监听器,这种方式比较简洁,但是会增加代码的复杂度。
  3. 外部类:可以将事件监听器实现为一个独立的类,这种方式比较灵活,但是需要在多个类之间传递数据,增加了代码的复杂度。
  4. Lambda 表达式:可以使用 Lambda 表达式来实现事件监听器,这种方式比较简洁,但是需要使用 Java 8 或更高版本的编译器。
  5. Activity 本身:可以在 Activity 中实现事件监听器,这种方式比较简单,但是会增加 Activity 的代码复杂度,不太适合复杂的事件监听器实现。
  6. ButterKnife:可以使用 ButterKnife 库来简化事件监听器的实现,这种方式比较方便,但是需要引入第三方库。

以上几种方式都有其优缺点,具体使用哪种方式取决于开发者的需求和偏好。

将1、2、3、5分别举例

好的,我分别举例说明一下这几种方式的使用:

  1. 内部类

在 Activity 中定义一个内部类来实现 OnClickListener 接口,然后将该内部类的实例传递给需要注册监听器的控件。示例代码如下:

public class MainActivity extends AppCompatActivity {
    // ...

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

        Button button = findViewById(R.id.button);
        button.setOnClickListener(new MyClickListener());
    }

    private class MyClickListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            // 处理点击事件
        }
    }
}
  1. 匿名内部类

可以使用匿名内部类来实现 OnClickListener 接口,如下所示:

public class MainActivity extends AppCompatActivity {
    // ...

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

        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 处理点击事件
            }
        });
    }
}
  1. 外部类

可以将事件监听器实现为一个独立的类,如下所示:

public class MyClickListener implements View.OnClickListener {
    @Override
    public void onClick(View v) {
        // 处理点击事件
    }
}

public class MainActivity extends AppCompatActivity {
    // ...

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

        Button button = findViewById(R.id.button);
        button.setOnClickListener(new MyClickListener());
    }
}
  1. Activity 本身

可以在 Activity 中实现 OnClickListener 接口,并将 Activity 本身传递给需要注册监听器的控件,如下所示:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    // ...

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

        Button button = findViewById(R.id.button);
        button.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // 处理点击事件
    }
}

以上是这几种方式的简单示例,具体实现方式可以根据开发者的需求和偏好进行调整。

标签:复习,button,期末,void,监听器,Override,Android,onCreate,public
From: https://www.cnblogs.com/ChuenSan/p/17512573.html

相关文章

  • Android ListView的事件监听
    1、数据项点击事件,针对的是ListView每个数据项的点击事件listView.setOnItemClickListener{_,_,position,_->Toast.makeText(this,"position:$position",Toast.LENGTH_LONG).show()}2、ListView组件焦点事件(不是指单个item,是整个ListView)listView.setOnFocusCh......
  • Android ListView运行效率优化
    上篇介绍了ListView的用法,链接如下,这篇主要讲解如何提升ListView的效率Android定制ListView的界面1、使用缓存布局ListView如果不进行优化,其运行效率是很低的,因为在Adapter类的getView方法中,每次都将布局重新加载一遍,当ListView快速滚动时,这就会成为性能瓶颈。Adapter类的get......
  • 讯飞离线语音合成新版(Aikit)-android sdk合成 demo(Java版本)
    前言:科大讯飞的新版离线语音合成,由于官网demo是kt语言开发的,咱也看不懂kt,搜遍了全网也没看到一个java版的新版离线语音demo,现记录下,留给有缘人参考!!!!!毕竟咱在这上面遇到了不少的坑。如果能留言指正,那就更好了。第一步:​ 官网注册账号---》实名认证---》点击语音合成---》离线语音......
  • android ninepatch
    简介ninepatch是android提供的一种图片格式,以.9.png结尾,它可以根据实际情况横向或纵向的拉伸,它是png的一种特殊格式。ninepatch为什么会有ninepatch呢?比如,有个聊天图片message_left.png,当宽度设置为match_parent时,就产生了图片由于拉伸而很难看的问题。有鉴于此,android在它的sdk......
  • 直播平台怎么搭建,Android获取文本的宽度和高度
    直播平台怎么搭建,Android获取文本的宽度和高度方法一:先绘制文本所在的矩形区域,再获取矩形区域的宽度   Rectrect=newRect();  mPaint.getTextBounds(text,0,text.length(),rect);  canvas.drawRect(rect,mPaint);  floattextWidth1=rect.width(); ......
  • Android 小白在两年时间成为一个大牛,我究竟做了什么?
    初识Android=========“同学们,给大家介绍一下,我是你们未来一年的移动互联网开发讲师”,我在大三的时候,这是我和Android第一次交流,当时的课讲实话,我没听,一点都没有,只是知道了有个东西叫Android开发。还是和大多数人一样,做着自己喜欢的事情。我们专业并不是和移动开发相关的,这点......
  • Android:知道类加载过程面试还是卡壳?硬核总结,一网打净“类”的基础知识
    前言之前说了类加载的过程,但是有的读者表示还是有些面试题还是答不来,所以今天就来总结下类加载、对象实例化方面的知识点/面试题,帮助大家加深印象。全是干货,一网打尽类的基础知识!先看看下面的问题都能回答上来吗?描述new一个对象的过程,并结合例子说明。类初始化的触发时机。多线程进......
  • 2023年最新Android Framework源码高级笔记+学习路线图+硬核资料库,跪着啃完了。。。
    虽然疫情已经过去,餐饮、旅游一些实体经济迅速回暖,但是互联网的寒冬却还没有过去,很多大厂都在裁员,裁员比例还挺高,我们一千多人的公司就直接裁掉30%。今年的各大公司基本只有两个目标:一个是营收,那些投入产出比不高的项目或者事情都暂时搁置,可做可不做的就不做;另外一个就是降本增效,通......
  • 渣渣二本的辛酸面试之路:从深圳外包到杭州蚂蚁金服,4年小Android的爬坑历程
    写在开头笔者16年于长沙一个普通二本,毕业后去了满地都是机会的深圳。第一份工作是一家外包公司,主要业务是电商和电子支付信息安全方面的。一年后跳槽到华润旗下一个子公司做金融。至今已工作4年。大家都知道,对于跟我一样没有名校背景,也没有大厂出身的程序员来说,面试唯一的加分项就......
  • 转型Android系统开发,200份简历成功上岸(艰难的求职历程)
    今年的Android就业真的太不容易了,在找工作的过程中多次想放弃,被裁员两个月了,本科毕业5年,有大厂经历,Android应用4年,Android系统Framework半年左右,想要一个28K的工作都找不到。投递了200份简历,只有4个面试邀请。只好把屏蔽的外包公司都解开了,但外包的一般薪资只能达到20K左右。绝......