点击事件的四种写法
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="sample.android_serialport_api.myapplication.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="bt1" android:id="@+id/butto1"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="bt2" android:id="@+id/butto2"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="bt3" android:id="@+id/butto3"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="bt4" android:id="@+id/butto4"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="bt5" android:id="@+id/butto5"/> </LinearLayout>
package sample.android_serialport_api.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity implements View.OnClickListener{ Button bt1 = null; Button bt2 = null; Button bt3 = null; Button bt4 = null; Button bt5 = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt1 = (Button) findViewById(R.id.butto1); bt2 = (Button) findViewById(R.id.butto2); bt3 = (Button) findViewById(R.id.butto3); bt4 = (Button) findViewById(R.id.butto4); bt5 = (Button) findViewById(R.id.butto5); //方法1:匿名内部类 bt1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println("方式1:按键1"); } }); bt2.setOnClickListener(new Bt2Listener()); bt3.setOnClickListener(this); bt4.setOnClickListener(this); bt5.setOnClickListener(this); } //方法2:内部类继承View.OnClickListener private class Bt2Listener implements View.OnClickListener{ public void onClick(View v) { System.out.println("方式2:按键2"); } } //方法3:activity继承View.OnClickListener public void onClick(View v) { System.out.print("方式3:"); int i = v.getId(); switch(i){ case R.id.butto3: System.out.println("按键3"); break; case R.id.butto4: System.out.println("按键4"); break; case R.id.butto5: System.out.println("按键5"); break; default:break; } } }