android中3種事件監聽的實現方式

本次主要爲總結自己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.寫下響應的邏輯。

運行效果:
               
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章