Android 实现Button的5种方法

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

 

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

1、匿名内部类

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

3、定义的构造方法

4、用Activity实现OnClickListener接口

5、指定Button的onClick的属性

 

 

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

 

activity_main.xml:

 

 
  1. <Button

  2.  
  3. android:id="@+id/bt1"

  4.  
  5. android:layout_width="wrap_content"

  6.  
  7. android:layout_height="wrap_content"

  8.  
  9. android:text="点击事件" />

然后,再写Java代码

 

MainActivity.java:

 

1.匿名内部类

 
  1. @Override

  2.  
  3. protected void onCreate(BundlesavedInstanceState) {

  4.  
  5. super.onCreate(savedInstanceState);

  6.  
  7. setContentView(R.layout.activity_main);

  8.  
  9.  
  10.  
  11. bt = (Button) findViewById(R.id.bt1);

  12.  
  13. //1.匿名内部类

  14.  
  15. bt.setOnClickListener(newOnClickListener() {

  16.  
  17.  
  18.  
  19. @Override

  20.  
  21. public void onClick(View v) {

  22.  
  23. // TODO Auto-generated methodstub

  24.  
  25. Log.i("匿名内部类", "点击事件");

  26.  
  27. }

  28.  
  29. });

  30.  
  31. }

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

 

 
  1. public classMainActivity extends Activity{

  2.  
  3.  
  4.  
  5. private Button bt;

  6.  
  7.  
  8.  
  9. @Override

  10.  
  11. protected void onCreate(BundlesavedInstanceState) {

  12.  
  13. super.onCreate(savedInstanceState);

  14.  
  15. setContentView(R.layout.activity_main);

  16.  
  17.  
  18.  
  19. bt = (Button) findViewById(R.id.bt);

  20.  
  21.  
  22.  
  23. bt.setOnClickListener(newMyListener());

  24.  
  25. }

  26.  
  27.  
  28.  
  29. //定义内部类,实现OnClickListene接口

  30.  
  31. class MyListener implementsOnClickListener{

  32.  
  33.  
  34.  
  35. @Override

  36.  
  37. public void onClick(View v) {

  38.  
  39. // TODO Auto-generated method stub

  40.  
  41. Log.i("定义内部类,实现OnClickListene接口", "点击事件");

  42.  
  43. }

  44.  
  45. }

  46.  
  47. }

3.定义的构造方法

 

 
  1. public classMainActivity extends Activity{

  2.  
  3. private Button bt;

  4.  @Override

  5.  
  6. protected void onCreate(BundlesavedInstanceState) {

  7. super.onCreate(savedInstanceState);

  8. setContentView(R.layout.activity_main);

  9. bt = (Button) findViewById(R.id.bt);

  10. myListener();

  11.  
  12. }

  13.  
  14.  
  15.  
  16. //定义构造方法

  17.  
  18. private void myListener() {

  19.  
  20. // TODO Auto-generated method stub

  21.  
  22. bt.setOnClickListener(newOnClickListener() {

  23.  
  24.  
  25.  
  26. @Override

  27.  
  28. public void onClick(View v) {

  29.  
  30. // TODO Auto-generated methodstub

  31.  
  32. Log.i("定义构造方法", "点击事件");

  33.  
  34. }

  35.  
  36. });

  37.  
  38. }

  39.  
  40. }

4.用Activity实现OnClickListener接口

 

 
  1. public classMainActivity extends Activity implements OnClickListener {

  2.  
  3. private Button bt;

  4.  
  5. @Override

  6.  
  7. protected void onCreate(BundlesavedInstanceState) {

  8. super.onCreate(savedInstanceState);

  9. setContentView(R.layout.activity_main);

  10.  
  11.  bt = (Button) findViewById(R.id.bt);

  12. bt.setOnClickListener(this);

  13.  
  14. }

  15.  
  16.   //用Activity实现OnClickListener接口

  17.  
  18. @Override

  19.  
  20. public void onClick(View v) {

  21.  
  22. // TODO Auto-generated method stub

  23.  
  24. Log.i("用Activity实现OnClickListener接口", "点击事件");

  25.  
  26. }

  27. }

5.指定Button的onClick的属性:

 

先在layout文件中指定onClick属性,然后到Activity中实现这个onButtonClick方法

布局文件:

 
  1. <Button

  2. android:layout_width="wrap_content"

  3.  
  4. android:layout_height="wrap_content"

  5.  
  6. android:onClick="click"

  7.  
  8. android:text="点击事件" />

Java代码:

 

 
  1. public classMainActivity extends Activity {

  2.  
  3. @Override

  4.  
  5. protected void onCreate(BundlesavedInstanceState) {

  6.  
  7. super.onCreate(savedInstanceState);

  8.  
  9. setContentView(R.layout.activity_main);

  10. }

  11.  
  12. //5指定onClick属性方式

  13. public void click(View v) {

  14.  
  15. // TODO Auto-generated method stub

  16.  
  17. Log.i("指定onClick属性方式","点击事件");

  18. }

  19. }

 

另外,多个按钮点击的话,也可以 指定onClick属性方式,获取其资源id。通过其资源id,可以 判断 用户点击了哪个按钮了。

 

布局文件:

 
  1. <Button

  2.  
  3. android:id="@+id/bt1"

  4.  
  5. android:layout_width="wrap_content"

  6.  
  7. android:layout_height="wrap_content"

  8.  
  9. android:onClick="click"

  10.  
  11. android:text="点击事件1" />

  12.  
  13.  
  14.  
  15. <Button

  16.  
  17. android:id="@+id/bt2"

  18.  
  19. android:layout_width="wrap_content"

  20.  
  21. android:layout_height="wrap_content"

  22.  
  23. android:onClick="click"

  24.  
  25. android:text="点击事件2" />

  26.  
  27.  
  28.  
  29. <Button

  30.  
  31. android:id="@+id/bt3"

  32.  
  33. android:layout_width="wrap_content"

  34.  
  35. android:layout_height="wrap_content"

  36.  
  37. android:onClick="click"

  38.  
  39. android:text="点击事件3" />/>

  40.  
  41.  
  42.  
  43. <Button

  44.  
  45. android:id="@+id/bt4"

  46.  
  47. android:layout_width="wrap_content"

  48.  
  49. android:layout_height="wrap_content"

  50.  
  51. android:onClick="click"

  52.  
  53. android:text="点击事件4" />

  54.  

Java代码:
 

 
  1. public classMainActivity extends Activity {

  2.  
  3. @Override

  4.  
  5. protected void onCreate(BundlesavedInstanceState) {

  6.  
  7. super.onCreate(savedInstanceState);

  8.  
  9. setContentView(R.layout.activity_main);

  10.  
  11. }

  12.  
  13. //指定onClick属性方式

  14.  
  15. //传人的View对象,就是用户按下的那个按钮对象

  16.  
  17. public void click(View v) {

  18.  
  19. // TODO Auto-generated method stub

  20.  
  21. //获取组件的资源id

  22.  
  23. int id = v.getId();

  24.  
  25. switch (id) {

  26.  
  27. case R.id.bt1:

  28.  
  29. Log.i("指定onClick属性方式","bt1点击事件");

  30.  
  31. break;

  32.  
  33. case R.id.bt2:

  34.  
  35. Log.i("指定onClick属性方式","bt2点击事件");

  36.  
  37. break;

  38.  
  39. case R.id.bt3:

  40.  
  41. Log.i("指定onClick属性方式","bt3点击事件");

  42.  
  43. break;

  44.  
  45. case R.id.bt4:

  46.  
  47. Log.i("指定onClick属性方式","bt4点击事件");

  48.  
  49. break;

  50.  
  51. default:

  52.  
  53. break;

  54.  
  55. }

  56.  
  57. }

  58.  
  59. }

效果图:

Android 实现Button的5种方法
 

 

仅供参考学习交流