zoukankan      html  css  js  c++  java
  • Android中点击事件的四种写法详解

    Android中点击事件的四种写法

    • 使用内部类实现点击事件
    • 使用匿名内部类实现点击事件
    • 让MainActivity实现View.OnClickListener接口
    • 通过布局文件中控件的属性 第一种方法:使用内部类

    第一种

    基本步骤如下:

    1. 新建一个MyOnClickListener类并实现View.OnClickListener接口
    2. 重写View.OnClickListener接口中的OnClick(View view)方法
    3. 给Button绑定一个监听器,并监听一个点击事件

    示例代码如下:

    public class MainActivity extends Activity {
    private Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      //绑定
      btn = (Button) findViewById(R.id.button);
      //使用内部类(实现OnClickListener)
      btn.setOnClickListener(new MyOnClickListener());
    }
    
    class MyOnClickListener implements View.OnClickListener{
      @Override
      public void onClick(View v) {
        Toast.makeText(this, "别点我", Toast.LENGTH_SHORT).show();
      }
    }

    第二种方法:使用匿名内部类

    基本步骤如下:

      1. 给Button绑定一个监听器,并监听一个点击事件

      2. 在setOnClickListener方法中直接传入一个OnClickListener对象,并实现OnClick方法
        示例代码如下:

    public class MainActivity extends Activity {
    private Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      btn = (Button) findViewById(R.id.button);
      btn.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
             Toast.makeText(this, "别点我", Toast.LENGTH_SHORT).show();
          }
        });
      }
    }

    第三种方法:让MainActivity直接实现View.OnClickListener接口

    基本步骤如下:

    1. 让MainActivity直接实现View.OnClickListener
    2. 在MainActivity类中重写onClick方法
    3. 给Button绑定一个监听器,并监听一个点击事件。

    注:此时setOnClickListener传入的是this
    示例代码如下:

    public class MainActivity extends Activity implements OnClickListener {
    private Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      btn = (Button) findViewById(R.id.button);
      btn.setOnClickListener(this);
    }
    //实现OnClickListener接口中的onClick方法
    @Override
    public void onClick(View v) {
            Toast.makeText(this, "别点我", Toast.LENGTH_SHORT).show();
      }
    }

    第四种方法:通过布局文件中控件的属性

    基本步骤如下:

    在activity_main.xml中给Button控件添加Android:onClick=”action”属性

    在Activity中实现action方法,action方法必须满足如下三个条件:

    (1) 方法的访问修饰符必须是public

    (2)方法的名称必须跟android:onClick=”action” 中的名称完全一致

    (3)形参必须是View类型
    示例代码如下:

    public class MainActivity extends Activity {
    private Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      btn = (Button) findViewById(R.id.button);
    
    }
    //利用反射给button绑定一个监听器,监听点击事件
    /**
     * 1:方法的访问修饰符必须是public
     * 2:方法的名称必须跟android:onClick="call" 中的名称完全一致
     * 3:形参必须是View类型
     * 注:形参View其实就是Button对象本身
     * */
    public void call(View view ){
       Toast.makeText(this, "别点我", Toast.LENGTH_SHORT).show();
      }
    }

      

  • 相关阅读:
    POI导出word文档里的符号,亲测有效
    java使用POI导出word文档,包含图片,表格,文本
    linux下关闭tomcat8009端口
    导入包报错The import org.springframework cannot be resolved
    create connection error, url: jdbc:mysql://**ip**:3306/*?errorCode 1045, state 28000
    云服务器是怎么做到安装多个系统的?
    java基础概念整理综合 及补充(jdk1.8)
    oracle数据库,表被锁,如何解锁?
    Java框架:spring框架整合hibernate框架的xml配置(使用注解的方式)
    form表单多文件上传
  • 原文地址:https://www.cnblogs.com/CodeHunter-qcy/p/11255161.html
Copyright © 2011-2022 走看看