• Android中点击事件的实现方式


    在之前博文中多次使用了点击事件的处理实现,有朋友就问了,发现了很多按钮的点击实现,但有很多博文中使用的实现方式有都不一样,到底是怎么回事。今天我们就汇总一下点击事件的实现方式。

    点击事件的实现大致分为以下三种:

    1Activity 实现接口方式实现点击事件(经常使用)

    (2)自定义方法,使用配置文件android:onclick

    (3)使用内部类方式实现

    4)使用匿名内部类实现介绍下几种点击事件的实现方式:

    下面我们通过代码来简单演示下几种点击事件的实现方式:

    (1)Activity 实现接口方式实现点击事件

     1 /**
     2  * Activity 实现接口方式实现点击事件
     3  *  Activity 实现 View.OnClickListener 实现 onClick(View view){} 方法
     4  *  在 Activity 的 onCreate 方法中注册事件
     5  */
     6 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
     7     private Button btn;
     8     protected void onCreate(Bundle savedInstanceState) {
     9         super.onCreate(savedInstanceState);
    10         setContentView(R.layout.activity_main);
    11         btn = (Button) findViewById(R.id.button);
    12         btn.setOnClickListener(this);
    13     }
    14     public void onClick(View v) {
    15         Toast.makeText(MainActivity.this,"实现接口方式",Toast.LENGTH_LONG).show();
    16     }
    17 }

    (2)自定义方法,使用layout配置文件android:onclick

     1 /**
     2  * 使用配置文件方式实现点击事件
     3  *  在layout中的配置文件中使用onClick 属性指定触发事件时的处理方法,
     4  *  在 Activity 中提供一个同名的方法 格式为 public void XXX(View v){....}
     5  */
     6 public class MainActivity extends AppCompatActivity {
     7     protected void onCreate(Bundle savedInstanceState) {
     8         super.onCreate(savedInstanceState);
     9         setContentView(R.layout.activity_main);
    10     }
    11     public void click(View v){
    12         Toast.makeText(MainActivity.this,"自定义",Toast.LENGTH_LONG).show();
    13     }
    14 }

    (3)使用内部类方式实现

     1 /**
     2  * 使用内部类方式实现点击事件
     3  *  定义一个 View.OnClickListener 的实现类,实现 onClick 方法。
     4  *  在 Activity 的 onCreate 方法中注册事件
     5  */
     6 public class MainActivity extends AppCompatActivity {
     7     private Button btn;
     8     protected void onCreate(Bundle savedInstanceState) {
     9         super.onCreate(savedInstanceState);
    10         setContentView(R.layout.activity_main);
    11         btn = (Button) findViewById(R.id.button2);
    12         btn.setOnClickListener(new Listener());
    13     }
    14     class Listener implements View.OnClickListener{
    15         @Override
    16         public void onClick(View v) {
    17             Toast.makeText(MainActivity.this,"内部类",Toast.LENGTH_LONG).show();
    18         }
    19     }
    20 }

    (4)使用匿名内部类实现

     1 /**
     2  * 使用匿名内部类方式实现点击事件
     3  *  注册按钮单击事件时直接使用匿名内部类
     4  */
     5 public class MainActivity extends AppCompatActivity {
     6     private Button btn;
     7     protected void onCreate(Bundle savedInstanceState) {
     8         super.onCreate(savedInstanceState);
     9         setContentView(R.layout.activity_main);
    10         btn = (Button) findViewById(R.id.button3);
    11         btn.setOnClickListener(new View.OnClickListener(){
    12             @Override
    13             public void onClick(View v) {
    14                 Toast.makeText(MainActivity.this,"匿名内部类",Toast.LENGTH_LONG).show();
    15             }
    16         });
    17     }
    18 }

    补充:

    不同的组件来实现不同类型的点击事件,例如onItemClickListener,OnCheckedChangeListenerOnRatingBarChangeListenerOnMultiChoiceClickListenerOnDate/timeSetListener,OnScrollListenerOnChildClickListenersetOnTouchListenerOnPageChangeListenerOnMenuItemClickListener,OnEditorActionListener,OnEditorActionListener等等各种点击事件的处理形式。

  • 相关阅读:
    【文言文】从高考到程序员
    lambda方法引用总结——烧脑吃透
    秒杀苹果carplay baidu车联网API冷艳北京车展
    东君误妾我怜卿(一)
    百度快照投诉技巧案例分析百度快照就是这样刷出来的
    新浪博客是否可以放谷歌广告?如何添加
    与葡萄酒的亲密接触-选购技巧篇
    车联网高速公路智能交通解决方案
    物联网细分领域-车联网(OBD)市场分析
    APP开发选择什么框架好? 请看这里!
  • 原文地址:https://www.cnblogs.com/panhouye/p/6195923.html
Copyright © 2020-2023  润新知