本次主要爲總結自己android學習過程中學到的3種事件監聽的實現方式。
第一種:先定義事件偵聽器,後註冊給需要偵聽用戶動作的組件
代碼如下:
package com.example.administrator.mylogin;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class LoginActivity extends AppCompatActivity {
private String userName,passWord;
private EditText username;
private EditText password;
private View.OnClickListener myListener = new View.OnClickListener() {
//1.聲明事件監聽器
@Override
public void onClick(View view) {
//4.要響應的邏輯
if(view.getId()==R.id.butlogin){
userName=username.getText().toString();
passWord=password.getText().toString();
Toast.makeText(LoginActivity.this,"login按鈕被點擊了"+userName+"/"+passWord,Toast.LENGTH_SHORT).show();
}else if(view.getId()==R.id.butreset){
username.setText("");
password.setText("");
Toast.makeText(LoginActivity.this,"reset按鈕被點擊了",Toast.LENGTH_SHORT).show();
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loginlayout);
//2.綁定控件
Button butlogin = (Button)findViewById(R.id.butlogin);
//3.調用
butlogin.setOnClickListener(myListener);
Button butreset = (Button)findViewById(R.id.butreset);
butreset.setOnClickListener(myListener);
username=(EditText) findViewById(R.id.username);
password= (EditText) findViewById(R.id.password);
}
}
小結:此種方式主要分爲以下4個步驟來實現:
1.聲明事件監聽器;
2.綁定控件,通過findViewById()方法獲取到控件的實例;
3.註冊給需要監聽用戶動作的組件;
4.寫下響應的邏輯。
第二種:實現接口的方式來註冊
代碼如下:
package com.example.administrator.mylogin;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity2 extends AppCompatActivity implements View.OnClickListener{
private String userName,passWord;
private EditText username;
private EditText password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loginlayout);
Button butlogin = (Button)findViewById(R.id.butlogin);
//3.調用
butlogin.setOnClickListener(this);
Button butreset = (Button)findViewById(R.id.butreset);
butreset.setOnClickListener(this);
username=(EditText) findViewById(R.id.username);
password= (EditText) findViewById(R.id.password);
}
@Override
public void onClick(View view) {
if(view.getId()==R.id.butlogin){
userName=username.getText().toString();
passWord=password.getText().toString();
Toast.makeText(MainActivity2.this,"login按鈕被點擊了"+userName+"/"+passWord,Toast.LENGTH_SHORT).show();
}else if(view.getId()==R.id.butreset){
username.setText("");
password.setText("");
Toast.makeText(MainActivity2.this,"reset按鈕被點擊了",Toast.LENGTH_SHORT).show();
}
}
}
小結:此種方式主要分爲以下步驟
1.實現接口;
2.綁定控件,通過findViewById()方法獲取到控件的實例;
3.註冊給需要監聽用戶動作的組件;
4.寫下響應的邏輯。
第三種:匿名類的方式
代碼如下:
package com.example.administrator.mylogin;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity3 extends AppCompatActivity {
private String userName,passWord;
private EditText username;
private EditText password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loginlayout);
username=(EditText) findViewById(R.id.username);
password= (EditText) findViewById(R.id.password);
Button butlogin= (Button) findViewById(R.id.butlogin);
butlogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
userName=username.getText().toString();
passWord=password.getText().toString();
Toast.makeText(MainActivity3.this,"login按鈕被點擊了"+userName+"/"+passWord,Toast.LENGTH_SHORT).show();
}
});
Button butreset= (Button) findViewById(R.id.butreset);
butreset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
username.setText("");
password.setText("");
Toast.makeText(MainActivity3.this,"reset按鈕被點擊了",Toast.LENGTH_SHORT).show();
}
});
}
}
小結:此種方式主要分以下步驟:
1.綁定控件,通過findViewById()方法獲取到控件的實例;
2.註冊給需要監聽用戶動作的組件;
3.寫下響應的邏輯。
運行效果:
![]()