在安卓开发中,button点击事件是所有需求中都会涉及的基础需求,有很多方式可以实现这个需求,对于有经验的android程序员而言这部分内容基本没什么问题,本文主要针对android初学者,下面整理了几种Button点击事件的实现方法,以便初学者更好的掌握。
Button点击事件,在安卓中一般有以下几种:
1、匿名内部类
2、定义内部类,实现OnClickListener接口
3、定义的构造方法
4、用Activity实现OnClickListener接口
5、指定Button的onClick的属性
实现Button点击事件,首先,我们需要简单地定义一个带Button的xml布局文件:
activity_main.xml:
<Button
android:id="@+id/bt1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击事件" />
然后,再写Java代码
MainActivity.java:
1.匿名内部类
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt = (Button) findViewById(R.id.bt1);
//1.匿名内部类
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.i("匿名内部类", "点击事件");
}
});
}
2.定义内部类,实现OnClickListener接口
public class MainActivity extends Activity{
private Button bt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt = (Button) findViewById(R.id.bt);
bt.setOnClickListener(new MyListener());
}
//定义内部类,实现OnClickListene接口
class MyListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.i("定义内部类,实现OnClickListene接口", "点击事件");
}
}
}
3.定义的构造方法
public class MainActivity extends Activity{
private Button bt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt = (Button) findViewById(R.id.bt);
myListener();
}
//定义构造方法
private void myListener() {
// TODO Auto-generated method stub
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.i("定义构造方法", "点击事件");
}
});
}
}
4.用Activity实现OnClickListener接口
public class MainActivity extends Activity implements OnClickListener {
private Button bt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt = (Button) findViewById(R.id.bt);
bt.setOnClickListener(this);
}
//用Activity实现OnClickListener接口
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.i("用Activity实现OnClickListener接口", "点击事件");
}
}
5.指定Button的onClick的属性:
先在layout文件中指定onClick属性,然后到Activity中实现这个onButtonClick方法
布局文件:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click"
android:text="点击事件" />
Java代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//5指定onClick属性方式
public void click(View v) {
// TODO Auto-generated method stub
Log.i("指定onClick属性方式","点击事件");
}
}
另外,多个按钮点击的话,也可以指定onClick属性方式,获取其资源id。通过其资源id,可以判断用户点击了哪个按钮了。
布局文件:
<Button
android:id="@+id/bt1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click"
android:text="点击事件1" />
<Button
android:id="@+id/bt2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click"
android:text="点击事件2" />
<Button
android:id="@+id/bt3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click"
android:text="点击事件3" />/>
<Button
android:id="@+id/bt4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click"
android:text="点击事件4" />
Java代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//指定onClick属性方式
//传人的View对象,就是用户按下的那个按钮对象
public void click(View v) {
// TODO Auto-generated method stub
//获取组件的资源id
int id = v.getId();
switch (id) {
case R.id.bt1:
Log.i("指定onClick属性方式","bt1点击事件");
break;
case R.id.bt2:
Log.i("指定onClick属性方式","bt2点击事件");
break;
case R.id.bt3:
Log.i("指定onClick属性方式","bt3点击事件");
break;
case R.id.bt4:
Log.i("指定onClick属性方式","bt4点击事件");
break;
default:
break;
}
}
}
以上就是android系统Button点击事件的实现方法和源码,大家可以在自己的环境下,尝试实现上面代码,看看效果如何。
相关文章:《android开发中自定义View的方法》
相关推荐
Android Button事件的实现,初学android的好帮手
本文用两种方法BaseAdapter 和SimpleAdapter分别实现三种情况。listview中有button事件的时候,针对不同的需求,响应不同的事件。只实现响应listview的点击事件。只响应listview中的button事件。两个事件都需要。
基于Android Studio环境下Button点击事件的实现.pdf
实现android对同一button单击双击事件的区分及其监控
由于工作需要实现类似开关的Button效果,自己实现了一下,给出效果图http://blog.csdn.net/java280580332/article/details/49151687 需要的同学直接可以拿去使用
最近在做android项目时 发现要在listView用到Button等各种点击事件 经过各种百度 发现有两个简单的方法实现 我把demo放上去 为了方便自己以后用到 也方便学习listview实现button监听的同学们 注意 我用最新sdk...
为ListView的每个列表添加Button 并且实现他的单击事件
可能有朋友猜想那就把水波纹绘制在屏幕上呗,恭喜这位朋友答对了,至少我是这么干的,具体思路就是,我们自己实现一个layout,在layout中捕捉事件,并对事件进行相应的处理,在down事件中寻找当前用户点击的是哪个...
本文实例讲述了Android开发圆角Button按钮实现过程,分享给大家供大家参考,具体内容如下 需求及效果图: 实现思路: 1、shape实现圆角 在drawable新建两个xml 文件, 这两个 xml文件用shape 实现了圆角效果。 Note:...
一个纯代码实现的android底部菜单栏,动态加载,简单实用
主要为大家详细介绍了Android Button点击事件的四种实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Android ImageButton的使用及长按Button的实现源码 参考blog: http://blog.csdn.net/manp1212/article/details/7701896
android button 特殊效果 shape 实现button的特殊效果。
android button使用实例代码,xml文件布局,实现按钮单击事件测试。
使用新的方法实现Button效果,如上图一样,有时候我们需要一个Button,前面有一个小型的图标,有两种办法,可以自定义一个Button,其实,我们不必纠结于Button这个词,只要能获得点击事件,做出Button一样的效果就可以
Button点击事件的用四种方法实现,分别是:1.匿名内部类实现;2.Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法;3.自定义点击事件监听类;4.在xml里利用反射调用方法。
如下列出的setItems 方法第2个参数易知只要为第2个参数提供OnClickListener实例即可实现监听事件 读者可通过这种方式触类旁通以下几种对话框监听事件的实现 学会通过查阅JavaDoc API文档来解决问题是一项开发必备的...
可以实现Button按钮一边直角一边圆角
实现按钮按下状态,可点状态,对应状态下不同的颜色,为selector设置三个item来对应不同状态,以实现不同背景颜色。
接下来要介绍的就是如何实现上述图中的波纹效果,这种效果如果大家没有体验过的话,可以看看百度手机卫士或者360手机卫士,里面的按钮点击效果都是这样的,另外Android 5.0以上的版本也出现了这种效果。不多说,下面...