视图重用——监听事件

创建一个简单的工程,它就包含一个主Activity。以下是主要代码。

mail.xml

 

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical" >
  6. <Button
  7. android:id="@+id/btn1"
  8. android:layout_width="wrap_content"
  9. android:layout_height="wrap_content"
  10. android:onClick="myClickHandler" <!-- 设置监听 -->
  11. android:text="Button 01" />
  12. <Button
  13. android:id="@+id/btn2"
  14. android:layout_width="wrap_content"
  15. android:layout_height="wrap_content"
  16. android:onClick="myClickHandler" <!-- 设置监听 -->
  17. android:text="Button 02" />
  18. <Button
  19. android:id="@+id/btn3"
  20. android:layout_width="wrap_content"
  21. android:layout_height="wrap_content"
  22. android:onClick="myClickHandler" <!-- 设置监听 -->
  23. android:text="Button 03" />
  24. </LinearLayout>

 

MainActivity.java

 

  1. public class MainActivity extends Activity {
  2. /** Called when the activity is first created. */
  3. private Button btn1;
  4. private Button btn2;
  5. private Button btn3;
  6. @Override
  7. public void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.main);
  10. btn1 = (Button) findViewById(R.id.btn1);
  11. btn2 = (Button) findViewById(R.id.btn2);
  12. btn3 = (Button) findViewById(R.id.btn3);
  13. }
  14. // 此方法与<Button>标签的onClick元素相对应
  15. public void myClickHandler(View target) {
  16. // 获得目标视图的ID
  17. int id = target.getId();
  18. switch (id) {
  19. case R.id.btn1:
  20. Toast.makeText(getApplicationContext(), "Click Button 01",
  21. Toast.LENGTH_SHORT).show();
  22. break;
  23. case R.id.btn2:
  24. Toast.makeText(getApplicationContext(), "Click Button 02",
  25. Toast.LENGTH_SHORT).show();
  26. break;
  27. case R.id.btn3:
  28. Toast.makeText(getApplicationContext(), "Click Button 03",
  29. Toast.LENGTH_SHORT).show();
  30. break;
  31. default:
  32. break;
  33. }
  34. }
  35. }

 

这样做,可以减少代码冗余,同时又增加了代码的可读性。

这个方法只能在Android 1.6以后的版本中使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值