Android中点击事件的四种写法
一、使用内部类实现点击事件
二、使用匿名内部类实现点击事件
三、让MainActivity实现View.OnClickListener接口
四、通过布局文件中控件的属性
第一种,使用内部类实现点击事件
1、新建一个MyOnClickListener类并实现View.OnClickListener接口
2、重写View.OnClickListener接口中的OnClick(View view)方法
3、给Button绑定一个监听器,并监听一个点击事件
示例代码:
public class MainActivity extends Activity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.button); //绑定
btn.setOnClickListener(new MyOnClickListener()); //使用内部类实现OnClickListener
}
class MyOnClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.xxx:
break;
case R.id.xxx:
break;
default:
break;
}
}
第二种,使用匿名内部类
1、给Button绑定一个监听器,并监听一个点击事件
2、在setOnClickListener方法中直接传入一个OnClickListener对象,并实现OnClick方法
示例代码:
public class MainActivity extends Activity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(this, "别点我", Toast.LENGTH_SHORT).show();
}
});
}
}
第三种,让MainActivity直接实现View.OnClickListener接口
1、让MainActivity直接实现View.OnClickListener
2、在MainActivity类中重写onClick方法
3、给Button绑定一个监听器,并监听一个点击事件,此时setOnClickListener传入的是this
示例代码:
public class MainActivity extends Activity implements OnClickListener {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(this);
}
@Override
public void onClick(View v) {//实现OnClickListener接口中的onClick方法
switch (v.getId()){
case R.id.xxx:
break;
case R.id.xxx:
break;
default:
break;
}
}
第四种方法:通过布局文件中控件的属性
1、实现点击事件的方法,方法访问修饰符必须是public,方法的名称必须跟android:onClick=”xxx” 中的名称完全一致,形参必须是View类型
2、在activity_main.xml中给Button控件添加Android:onClick=”xxx”属性
示例代码:
public class MainActivity extends Activity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.button);
}
public void Click(View v ){
switch (v.getId()){
case R.id.xxx:
break;
case R.id.xxx:
break;
default:
break;
}
}
}
网友评论