安卓开发中,button点击事件是所有需求中都会涉及的基础需求,有很多方式可以实现这个需求,对于有经验的android程序员而言这部分内容基本没什么问题,本文主要针对android初学者,下面整理了几种Button点击事件的实现方法,以便初学者更好的掌握。

Button点击事件,在安卓中一般有以下几种:

1、匿名内部类

2、定义内部类,实现OnClickListener接口

3、定义的构造方法

4、用Activity实现OnClickListener接口

5、指定ButtononClick的属性

实现Button点击事件,首先,我们需要简单地定义一个带Buttonxml布局文件:

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.指定ButtononClick的属性:

先在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的方法

更多相关文章

  1. Android开发面试经——5.常见面试官提问Android题①
  2. [置顶] Android(安卓)MotionEvent详解
  3. TextView 相关属性
  4. Android:style和theme
  5. power_supply子系统笔记
  6. android动态获取TextView的属性(width、height、line)
  7. Android中的状态机(续)
  8. Android中关于Task的一些认识
  9. App Inventor for Android(安卓)Button单击事件

随机推荐

  1. android上传图片并附带上传数据,文件流
  2. Android(安卓)R新特性:非SDK接口限制的更
  3. Android(安卓)4.4 Kitkat 音频实现及简要
  4. [置顶] Android即时通信软件设计(一)(网络通
  5. Android(安卓)内存泄露与优化,以及MAT工具
  6. Android/Linux 系统添加对多点触摸屏的支
  7. 给 Android(安卓)初学者的 Gradle 知识普
  8. Android实践——密码本SecretBook
  9. 团队Android小作品Chinchilla Guitar(琴琪
  10. [置顶] 【Android】ListView、RecyclerVi