android中3种事件监听的实现方式

来源:互联网 发布:matlab数据归一化 编辑:程序博客网 时间:2024/05/29 14:21

本次主要为总结自己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.写下响应的逻辑。

运行效果:
               
1 0
原创粉丝点击