Android开发之事件+实例


“机器人”的管理员——Activity

Activity 是Android 最基本的组件之一,它就像是一个管理员。我们需要在屏幕上显示什么(通常情况下,一个Activity 占据一个屏幕),用户将要在这个屏幕上做什么,怎样来处理用户做出的不同操作都需要由该Activity 来管理和调度。

下面列出Activity 经常用到的事件:

onKeyDown(int keyCode, KeyEvent event) 按键按下事件

onTouchEvent(MotionEvent event) 点击屏幕事件

onKeyUp(int keyCode, KeyEvent event) 按键松开事件

onTrackballEvent(MotionEvent event) 轨迹球事件

我们来做一个示例,了解一下Android 的管理员Activity 如何处理用户事件。

实现了按键切换,点击事件切换,触摸切换

效果图:

  1. package cn.class3g.activity;  
  2.   
  3.    
  4.   
  5. import android.app.Activity;  
  6.   
  7. import android.os.Bundle;  
  8.   
  9. import android.view.KeyEvent;  
  10.   
  11. import android.view.MotionEvent;  
  12.   
  13. import android.view.View;  
  14.   
  15. import android.view.View.OnClickListener;  
  16.   
  17. import android.widget.Button;  
  18.   
  19.    
  20.   
  21. public class ButtonActivity extends Activity {  
  22.   
  23. /** Called when the activity is first created. */  
  24.   
  25. Button bu1, bu2;  
  26.   
  27.    
  28.   
  29. public void onCreate(Bundle savedInstanceState) {  
  30.   
  31.     super.onCreate(savedInstanceState);  
  32.   
  33.     b1();  
  34.   
  35. }  
  36.   
  37.    
  38.   
  39. public void b1() {  
  40.   
  41.     setContentView(R.layout.main);  
  42.   
  43.     bu1 = (Button) this.findViewById(R.id.b1Id);  
  44.   
  45.    
  46.   
  47.     bu1.setOnClickListener(new OnClickListener() {  
  48.   
  49.    
  50.   
  51.        @Override  
  52.   
  53.        public void onClick(View v) {  
  54.   
  55.          // TODO Auto-generated method stub  
  56.   
  57.          b2();  
  58.   
  59.        }  
  60.   
  61.     });  
  62.   
  63. }  
  64.   
  65.    
  66.   
  67. public void b2() {  
  68.   
  69.     setContentView(R.layout.main1);  
  70.   
  71.     bu2 = (Button) this.findViewById(R.id.b2Id);  
  72.   
  73.     bu2.setOnClickListener(new OnClickListener() {  
  74.   
  75.    
  76.   
  77.        @Override  
  78.   
  79.        public void onClick(View v) {  
  80.   
  81.          // TODO Auto-generated method stub  
  82.   
  83.          b1();  
  84.   
  85.        }  
  86.   
  87.     });  
  88.   
  89. }  
  90.   
  91.    
  92.   
  93. boolean flag = true;  
  94.   
  95.    
  96.   
  97. @Override  
  98.   
  99. public boolean onKeyDown(int keyCode, KeyEvent event) {  
  100.   
  101.     // TODO Auto-generated method stub  
  102.   
  103.     flag = !flag;  
  104.   
  105.    
  106.   
  107.     return super.onKeyDown(keyCode, event);  
  108.   
  109. }  
  110.   
  111.    
  112.   
  113. @Override  
  114.   
  115. public boolean onKeyUp(int keyCode, KeyEvent event) {  
  116.   
  117.     // TODO Auto-generated method stub  
  118.   
  119.     if (flag) {  
  120.   
  121.        b1();  
  122.   
  123.     } else {  
  124.   
  125.        b2();  
  126.   
  127.     }  
  128.   
  129.    
  130.   
  131.     return super.onKeyUp(keyCode, event);  
  132.   
  133. }  
  134.   
  135.    
  136.   
  137. @Override  
  138.   
  139. public boolean onTouchEvent(MotionEvent event) {  
  140.   
  141.     // TODO Auto-generated method stub  
  142.   
  143.     flag = !flag;  
  144.   
  145.     if (flag) {  
  146.   
  147.        b2();  
  148.   
  149.     } else {  
  150.   
  151.        b1();  
  152.   
  153.     }  
  154.   
  155.     return super.onTouchEvent(event);  
  156.   
  157. }  
  158.   
  159. }  

相关内容