Android Button四种点击事件和长按事件

宁可枝头抱香死,何曾吹落北风中。这篇文章主要讲述Android Button四种点击事件和长按事件相关的知识,希望能为你提供帮助。
【Android Button四种点击事件和长按事件】项目XML代码

1 < ?xml version="1.0" encoding="utf-8"?> 2 < LinearLayout 3xmlns:android="http://schemas.android.com/apk/res/android" 4xmlns:tools="http://schemas.android.com/tools" 5android:layout_width="match_parent" 6android:layout_height="match_parent" 7android:orientation="vertical" 8tools:context=".MainActivity"> 9 10< Button 11android:layout_width="match_parent" 12android:layout_height="wrap_content" 13android:layout_marginTop="10dp" 14android:onClick="doClick" 15android:text="xml添加doClock"/> 16 17< Button 18android:id="@+id/button2" 19android:layout_width="match_parent" 20android:layout_height="wrap_content" 21android:layout_marginTop="10dp" 22android:text="匿名内部类点击"/> 23 24< Button 25android:id="@+id/button3" 26android:layout_width="match_parent" 27android:layout_height="wrap_content" 28android:layout_marginTop="10dp" 29android:text="自定义点击事件"/> 30 31< Button 32android:id="@+id/button4" 33android:layout_width="match_parent" 34android:layout_height="wrap_content" 35android:layout_marginTop="10dp" 36android:text="继承方式"/> 37 38< Button 39android:id="@+id/button5" 40android:layout_width="match_parent" 41android:layout_height="wrap_content" 42android:layout_marginTop="10dp" 43android:text="长按点击事件"/> 44 45 < /LinearLayout>

 
java代码:
1 package com.example.a11658.buttondemo; 2 3 import android.support.v7.app.AppCompatActivity; 4 import android.os.Bundle; 5 import android.view.View; 6 import android.widget.Button; 7 import android.widget.Toast; 8 9 public class MainActivity extends AppCompatActivity implements View.OnClickListener { 10Button button2, button3, button4, button5; 11 12@Override 13protected void onCreate(Bundle savedInstanceState) { 14super.onCreate(savedInstanceState); 15setContentView(R.layout.activity_main); 16 17initView(); 18} 19 20private void initView() { 21button2 = findViewById(R.id.button2); 22button3 = findViewById(R.id.button3); 23button4 = findViewById(R.id.button4); 24button5 = findViewById(R.id.button5); 25 26button2.setOnClickListener(new View.OnClickListener() { 27@Override 28public void onClick(View v) { 29//匿名内部类实现点击事件 30Toast.makeText(MainActivity.this, "匿名内部类的点击事件", Toast.LENGTH_SHORT).show(); 31} 32}); 33 34button3.setOnClickListener(new MyListener()); 35button4.setOnClickListener(this); 36button5.setOnLongClickListener(new View.OnLongClickListener() { 37@Override 38public boolean onLongClick(View v) { 39Toast.makeText(MainActivity.this, "长按事件", Toast.LENGTH_SHORT).show(); 40return false; 41} 42}); 43} 44 45public void doClick(View view) { 46//xml通过onClick实现点击事件 47Toast.makeText(this, "xml点击实现", Toast.LENGTH_SHORT).show(); 48} 49 50@Override 51public void onClick(View v) { 52//继承方式 53Toast.makeText(this, "继承点击", Toast.LENGTH_SHORT).show(); 54} 55 56class MyListener implements View.OnClickListener { 57 58@Override 59public void onClick(View v) { 60//自定义方式 61Toast.makeText(MainActivity.this, "自定义点击事件", Toast.LENGTH_SHORT).show(); 62} 63} 64 }

备注:Button数量不多的情况下推荐使用第二种,匿名内部类的方式实现;反之则推荐使用第四种,Activity继承View.OnClickListener实现

代码链接:https://pan.baidu.com/s/1hlkrcybgMUrS2rrslnDwGg




    推荐阅读