android button 匿名内部类的理解
来源:互联网 发布:农村淘宝佣金高 编辑:程序博客网 时间:2024/05/17 01:16
Button OnclickListener 的使用
1 匿名内部类的使用
有时候我为了免去给内部类命名,便倾向于使用匿名内部类,因为它没有名字。例如:
- ((Button) findViewById(R.id.start)).setOnClickListener(new Button.OnClickListener() {
- @Override
- public void onClick(View v) {
- new Thread() {
- @Override
- public void run() {
- // TODO Auto-generated method stub
- }
- }.start();
- }
- });
- 匿名内部类是不能加访问修饰符的。要注意的是,new 匿名类,这个类是要先定义的,看下面例子:
- public class Outer {
- public static void main(String[] args) {
- Outer outer = new Outer();
- Inner inner = outer.getInner("Inner", "gz");
- System.out.println(inner.getName());
- }
- public Inner getInner(final String name, String city) {
- return new Inner() {
- private String nameStr = name;
- public String getName() {
- return nameStr;
- }
- };
- }
- }
- //注释后,编译时提示类Inner找不到
- /* interface Inner {
- String getName();
- } */
同时在这个例子,留意外部类的方法的形参,当所在的方法的形参需要被内部类里面使用时,该形参必须为final。因为匿名内部类,没名字,是用默认的构造函数的,无参数的,那如果需要参数呢?则需要该类有带参数的构造函数:- public class Outer {
- public static void main(String[] args) {
- Outer outer = new Outer();
- Inner inner = outer.getInner("Inner", "gz");
- System.out.println(inner.getName());
- }
- public Inner getInner(final String name, String city) {
- return new Inner(name, city) {
- private String nameStr = name;
- public String getName() {
- return nameStr;
- }
- };
- }
- }
- abstract class Inner {
- Inner(String name, String city) {
- System.out.println(city);
- }
- abstract String getName();
- }
注意这里的形参city,由于它没有被匿名内部类直接使用,而是被抽象类Inner的构造函数所使用,所以不必定义为final。
0 0
- android button 匿名内部类的理解
- 匿名内部类的理解
- 匿名内部类的理解
- 匿名内部类的进一步理解
- Java 匿名内部类的理解
- java中匿名内部类的理解
- java 匿名内部类的理解
- android studio教程 button 用匿名内部类的方式实现事件处理
- 理解Java内部类 匿名内部类
- Android中随处可见的匿名内部类
- 匿名内部类(理解)
- android开发中Button按钮监听事件(匿名内部类监听或者不匿名)
- Android里面的匿名类与匿名内部类使用
- Android里面的匿名类与匿名内部类使用
- Android里面的匿名类与匿名内部类使用
- Android里面的匿名类与匿名内部类使用
- Android里面的匿名类与匿名内部类使用
- Android里面的匿名类与匿名内部类使用
- ES学习笔记八-聚合搜索
- va_start和va_end使用详解(转)
- WCF 内存入口检查失败 Memory gates checking failed
- 简析中国经济
- MVC传值
- android button 匿名内部类的理解
- 纯css实现刻度尺列表样式
- JavaScript初学者应注意的七个细节
- Tomcat源码阅读系列(一)使用IntelliJ IDEA运行Tomcat6源码
- 如何将Word转换成PDF文件
- RocketMQ基本知识
- 结构体中的函数指针(类中的成员函数效果)
- main函数执行前后
- Android自定义Dialog大小控制