1. 程式人生 > >Button監聽點擊事件的五種方式

Button監聽點擊事件的五種方式

per amp 其中 show java new mpat vat ati

常用方式為匿名類和本類監聽的方法。其中本類監聽方法需要繼承View.OnClickListener接口之後,重寫onClick方法。

PS:重寫某一個方法的快捷鍵為Ctrl+O

package com.example.kimberjin.reviewpro; 
 
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
 
/**
 * Created by KimberJin on 2018/7/25.
 */
 
public class ButtonListenerTest extends AppCompatActivity implements View.OnClickListener{
 
    private Button btn1, btn2, btn3, btn4, btn5;
    
    //btn5是布局監聽,需要在對應的xml文件中設置onClick屬性,其後跟一個函數名。
    //然後在MainActivity中實現函數
 
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button);
        btn1 = (Button)findViewById(R.id.my_Btn1);
        btn2 = (Button)findViewById(R.id.my_Btn2);
        btn3 = (Button)findViewById(R.id.my_Btn3);
        btn4 = (Button)findViewById(R.id.my_Btn4);
        btn5 = (Button)findViewById(R.id.my_Btn5);
        //內部類監聽
        btn1.setOnClickListener(new BtnClick());
        //外部類監聽
        btn2.setOnClickListener(new MyButtonListener());
        //本類監聽
        btn3.setOnClickListener(this);
        //匿名類監聽
        btn4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(getBaseContext(), "匿名類監聽", Toast.LENGTH_SHORT).show();
            }
        });
    }
 
    class BtnClick implements View.OnClickListener {
        @Override
        public void onClick(View view) {
            Toast.makeText(getBaseContext(), "內部類監聽", Toast.LENGTH_SHORT).show();
        }
    }
 
    @Override
    public void onClick(View view) {
        Toast.makeText(this, "本類監聽", Toast.LENGTH_SHORT).show();
    }
 
    public void getInfo(View view) {
        Toast.makeText(getBaseContext(), "布局監聽", Toast.LENGTH_SHORT).show();
    }
}
 
class MyButtonListener extends ButtonListenerTest implements View.OnClickListener{
    @Override
    public void onClick(View view) {
        Toast.makeText(view.getContext(), "外部類監聽", Toast.LENGTH_SHORT).show();
    }
}

  

Button監聽點擊事件的五種方式