Android 按钮的响应点击事件的4种写法

蹉跎莫遣韶光老,人生唯有读书好。这篇文章主要讲述Android 按钮的响应点击事件的4种写法相关的知识,希望能为你提供帮助。
android按钮的响应点击事件
学习了按钮的响应点击事件,写一下总结,写的不好的希望大家能给出意见或建议。
 
这是layout xml文件   点击事件只需要获得Button的id或者onClick
 

< ?xml version="1.0" encoding="utf-8"?> < RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> < Button android:id="@+id/button1"//只需要看这行1,2,3种方法看这个 android:layout_width="wrap_content" android:layout_height="wrap_content"//id我设置是button(b是小写的) android:layout_alignParentTop="true"//onclick我设置的是Button(B是大写的) android:layout_centerHorizontal="true" android:layout_marginTop="135dp" android:onClick="Button1"//只需要看这行 第四种方法看这个 android:text="Button1"/> < Button android:id="@+id/button2"// 只需要看这行1,2,3,种方法看这个 android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button1" android:layout_alignStart="@+id/button1" android:layout_below="@+id/button1" android:layout_marginTop="116dp" android:onClick="Button2"//只需要看这行第四种方法看这个 android:text="Button2"/> < /RelativeLayout>

 
第一种写法:匿名内部             //觉得第四种最简单
需要获得Button的  android:id="@+id/button1"       (b是小写的)
package com.example.administrator.click1; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity {@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button bt1_click = (Button) findViewById(R.id.button1); //android :id="@+id/button1" 用的时候只需要把button1改成Button的id
bt1_click.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this,"按键一被点击了", Toast.LENGTH_SHORT).show(); } }); //与上一段用法一样 Button bt2_click = (Button) findViewById(R.id.button2); bt2_click.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this,"按键二被点击了", Toast.LENGTH_SHORT).show(); } }); } }

  第二种写法:自定义事件监听类
个人觉得和第一种一样,只是把匿名内部的的方法用个类存放起来
package com.example.administrator.click1; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity {@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button bt1_click = (Button) findViewById(R.id.button1); Button bt2_click = (Button) findViewById(R.id.button2); bt1_click.setOnClickListener(new MyClickListener()); //与匿名差不多只是把class new出去了 bt2_click.setOnClickListener(new MyClickListener()); }class MyClickListener implements View.OnClickListener {@Override public void onClick(View v) {//通过switch 判断是哪一个按键按下的 switch (v.getId()) {//个人觉得自定义单击事件监听,有很多Button的时候用 case R.id.button1: Toast.makeText(MainActivity.this, "按键一被点击了", Toast.LENGTH_SHORT).show(); break; case R.id.button2: Toast.makeText(MainActivity.this, "按键二被点击了", Toast.LENGTH_SHORT).show(); break;
default:
break;

} } } }

第三种写法:
用this替换
package com.example.administrator.click1; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity implements View.OnClickListener {@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button bt1_click = (Button) findViewById(R.id.button1); Button bt2_click = (Button) findViewById(R.id.button2); bt1_click.setOnClickListener(this); //与第二种差不多 bt2_click.setOnClickListener(this); }@Override public void onClick(View v) { switch (v.getId()) { case R.id.button1: Toast.makeText(this, "按键一被点击了", Toast.LENGTH_SHORT).show(); break; case R.id.button2: Toast.makeText(this, "按键二被点击了", Toast.LENGTH_SHORT).show(); break; default: break; } } }

感觉这三种方法属于一种方法  
findViewById 找到button的id

然后用.setOnClickListener调用方法第四种方法就与众不同
第四种写法:

package com.example.administrator.click1; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Toast; public class MainActivity extends AppCompatActivity {@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }//只需要把函数名字改成你设置的onclick的名字就可以了 //只需要把函数名字改成你设置的onclick的名字就可以了 //只需要把函数名字改成你设置的onclick的名字就可以了 //Button1(大写的B)是onclick的 public void Button1(View v) { Toast.makeText(this, "按键一被点击", Toast.LENGTH_SHORT).show(); }//Button2(大写的B)是onclick的 public void Button2(View v) { Toast.makeText(this, "按键二被点击", Toast.LENGTH_SHORT).show(); } }

  第四种觉得最简单。
【Android 按钮的响应点击事件的4种写法】写的不好的希望大家能给出意见或建议。







    推荐阅读