Android的Button控件的点击事件的四种写法
2015-08-05 10:46
543 查看
方法一:内部类方法
程序功能:代码:
public class MainActivity extends Activity {
//activity被开启调用
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//根据ID需找到关心的Button控件
Button bt_01 = (Button)findViewById(R.id.bt_01);
Button bt_02 = (Button)findViewById(R.id.bt_02);
Button bt_03 = (Button)findViewById(R.id.bt_03);
//设置按钮的点击事件
bt_01.setOnClickListener(new btClickListener1());
bt_02.setOnClickListener(new btClickListener2());
bt_03.setOnClickListener(new btClickListener3());
}
public class btClickListener1 implements OnClickListener{
@Override public void onClick(View v) { //当用户点击按钮会显示如下信息 Toast.makeText(MainActivity.this, "点击按钮1", Toast.LENGTH_SHORT).show(); }
}
public class btClickListener2 implements OnClickListener{
@Override public void onClick(View v) { //当用户点击按钮会显示如下信息 Toast.makeText(MainActivity.this, "点击按钮2", Toast.LENGTH_SHORT).show(); }
}
public class btClickListener3 implements OnClickListener{
@Override public void onClick(View v) { //当用户点击按钮会显示如下信息 Toast.makeText(MainActivity.this, "点击按钮3", Toast.LENGTH_SHORT).show(); }
}
}
方法说明:这个方法需要为每一个按钮来定义一个内部类来实现OnClickListener这个接口的onClick(View v)方法。
应用场景:按钮比较少的时候,一个或者两个的时候,用还不错,但是多了,像计算器,那样就不适用了。
方法二:通过Activity来实现OnClickListener这个接口的onClick(View v)方法。
代码:public class MainActivity extends Activity implements OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt_01 = (Button)findViewById(R.id.bt_01); Button bt_02 = (Button)findViewById(R.id.bt_02); Button bt_03 = (Button)findViewById(R.id.bt_03); bt_01.setOnClickListener(this); bt_02.setOnClickListener(this); bt_03.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) { case R.id.bt_01: Toast.makeText(this, "点击按钮1", Toast.LENGTH_SHORT).show(); break; case R.id.bt_02: Toast.makeText(this, "点击按钮2", Toast.LENGTH_SHORT).show(); break; case R.id.bt_03: Toast.makeText(this, "点击按钮3", Toast.LENGTH_SHORT).show(); break; default: break; }
}
}
方法说明:这个方法通过Activity来实现OnClickListener这个接口的onClick(View v)方法,在设置按钮的点击事件,通过bt_01.setOnClickListener(this)这样的代码来设置,this代表MainActivity,onClick(View v)这个里面的参数View v,哪个按钮被点击,传来的参数就是哪个按钮,因为控件都是继承的View。
应用场景:按钮比较多的时候,比较适用。
方法三:通过匿名内部类的方法实现。
代码:public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt = (Button)findViewById(R.id.bt); bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "不要酱紫吗", Toast.LENGTH_SHORT).show(); } });
}
}
方法说明:这个方法没什么可说的了,只要知道匿名内部类的都可以懂的。
应用场景:适用于按钮比较少的场景,很方便。
方法四:在布局的xml文件中绑定点击事件
代码:布局文件中:
由于一直加布局文件不显示,所以就不加了,就说明一下,在Button的配置中添加:android:onClick=”onClick”这个属性。
Activity中对onClick方法的实现:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View v){
Toast.makeText(MainActivity.this, “哈哈”, Toast.LENGTH_SHORT).show();
}
}
方法说明:这个方法直接在布局文件中通过android:onClick=”onClick”对按钮设置点击的属性,当按钮被点击时,调用名为onClick的方法,这个方法在Activity中实现。
适用场景:在写一些示例代码的时候比较方便
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories