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();
      }
    }

      

  • 相关阅读:
    记录时间开销的好处
    jQuery实现轮播图效果
    读《论证是一门学问》
    sqrt.java
    关于perl:Fatal: failed to find source perl5db.pl for epic_breakpoints.pm解决方法
    JAVA基础——对象与引用概念(转载)
    对百度搜索看法的转变
    C输出格式——转载
    Java static关键字与静态块
    简单js实现弹出登陆框div层,背景变暗不可操作
  • 原文地址:https://www.cnblogs.com/CodeHunter-qcy/p/11255161.html
Copyright © 2011-2022 走看看