摘要:
Android中獲取到按鈕後,我們一般會爲其添加點擊事件,而android中的點擊事件共有四種寫法,下面我們通過代碼一一去實現。
第一種方法:通過佈局文件中控件的屬性
基本步驟如下:
1、在activity_login.xml中給Button控件添加Android:onClick=”action”屬性,
2、在Activity中實現action方法,action方法必須滿足如下三個條件:
(1)方法的訪問修飾符必須是public;
(2)方法的名稱必須跟android:onClick=”action” 中的名稱完全一致
(3)形參必須是View類型
示例代碼如下:
layout佈局代碼:
第二種方法:通過內部實現類
基本步驟如下:
1、新建一個ClickListener類並實現View.OnClickListener接口,
2、重寫View.OnClickListener接口中的OnClick(View view)方法,
3、給Button綁定一個監聽器,並監聽一個點擊事件
示例代碼如下:
第三種方法:通過Activity實現OnClickLitener,
基本步驟如下:
1、讓LoginActivity直接實現View.OnClickListener
2、在LoginActivity類中重寫onClick方法
3、給Button綁定一個監聽器,並監聽一個點擊事件。
注:此時setOnClickListener傳入的是this
示例代碼如下:
第四種方法:使用匿名內部類
基本步驟如下:
1、給Button綁定一個監聽器,並監聽一個點擊事件
2、在setOnClickListener方法中直接傳入一個OnClickListener對象,並實現OnClick方法
示例代碼如下:
總結:
事件寫法的思路:
1、根據控件ID去獲取控件;
2、設置控件的事件;
3、在事件方法中處理事件。
完整LoginActivity代碼:
package com.gx.hotel.ui;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.gx.hotel.R;
public class LoginActivity extends AppCompatActivity /* implements View.OnClickListener*/{
//控件
private Button btnSubmit;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//設置佈局
setContentView(R.layout.activity_login);
//獲取控件 ctrl+alt+f
btnSubmit = findViewById(R.id.btn_login_submit);
//②創建內部實現類對象
//ClickListener clickListener=new ClickListener();
//②設置點擊事件
//btnSubmit.setOnClickListener(clickListener);
//③設置點擊事件
//btnSubmit.setOnClickListener(this);
//④匿名內部實現類
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(LoginActivity.this,"提示:你點擊了按鈕, 匿名內部實現類",Toast.LENGTH_LONG).show();
}
});
}
//③ Activity實現OnClickLitener
//@Override
//public void onClick(View v) {
// switch (v.getId()){
// case R.id.btn_login_submit:
// Toast.makeText(LoginActivity.this,"提示:你點擊了按鈕, Activity實現OnClickLitener ",Toast.LENGTH_LONG).show();
// break;
// }
//}
//IDEA alt+Enter
//②第二種事件寫法:內部實現類
//class ClickListener implements View.OnClickListener{
//
// @Override
// public void onClick(View v) {
// int id=v.getId();
// switch (id){
// case R.id.btn_login_submit:
// Toast.makeText(LoginActivity.this,"提示:你點擊了按鈕,內部實現類",Toast.LENGTH_LONG).show();
// break;
// }
// }
//}
/*①第一種事件寫法:結合layout文件聲明方法 不推薦使用*/
//public void btnClick(View view){
// //參數 Context,text,duration
// //上下文,要提示的信息,提示顯示的時長
// Toast.makeText(LoginActivity.this,"提示:你點擊了按鈕",Toast.LENGTH_LONG).show();
//}
}