View点击事件处理方式两种方式:
- 设置View标签的属性onClick的值,将值作为方法名,在方法中处理点击事件
- 实现View.OnClickListener接口,将接口对象设置给View,实现接口可以使用内部类,外部类,Activity实现接口,匿名内部类。
一、设置View.onClick 属性值响应单击事件
第一步设置控件的onClick属性值
<Button
android:id="@+id/tvRegister"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="register"
android:text="注册" />
第二步将onClick属性值作为方法名
在Activity中将Button的onClick属性值register作为方法名,将View对象作为参数,方法的返回值为void,方法权限为public;
public void register(View view){
Toast.makeText(this,"点击注册按钮",Toast.LENGTH_SHORT).show();
}
二、实现View.OnClickListener接口
-
内部类实现View.OnClickListener接口
设置Button的id值,方便绑定
<Button
android:id="@+id/btLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登录"/>
在Activity中进行定义内部类实现View.onClickListener接口
class MyClickListener implements View.OnClickListener{
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,"登录按钮被点击",Toast.LENGTH_LONG).show();
}
}
在Activity中对View.onClickListener接口对象的设置
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
stContentView(R.layout.activity_main);
Button login=(Button) findViewById(R.id.btLogin);//绑定Button
login.setOnClickListener(new MyClickListener());//设置点击Button点击事件
}
-
匿名内部类实现View.OnClickListener接口:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView(){
Button login=(Button) findViewById(R.id.btLogin);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,"登录按钮被点击",Toast.LENGTH_LONG).show(); }});
}
-
Activity实现View.OnClickListener接口
@Override
public void onClick(View view) {
Toast.makeText(this,"登录按钮被点击",Toast.LENGTH_SHORT).show();
}
private void initView(){
Button login=(Button) findViewById(R.id.btLogin);
login.setOnClickListener(this);
}
三、多个按钮设置点击事件
使用内部类或者是Acitivity实现View.onClickListener接口
private void initView(){
Button login=(Button) findViewById(R.id.btLogin);
login.setOnClickListener(new MyClickListener());
Button register=(Button)findViewById(R.id.btRegister);
register.setOnClickListener(new MyClickListener());
}
class MyClickListener implements View.OnClickListener{
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.btLogin:
Toast.makeText(MainActivity.this,"登录按钮被点击",Toast.LENGTH_LONG).show();
break;
case R.id.btRegister:
Toast.makeText(MainActivity.this,"注册按钮被点击",Toast.LENGTH_LONG).show();
break;
}
}
}