“机器人”的管理员——Activity
Activity 是Android 最基本的组件之一,它就像是一个管理员。我们需要在屏幕上显示什么(通常情况下,一个Activity 占据一个屏幕),用户将要在这个屏幕上做什么,怎样来处理用户做出的不同操作都需要由该Activity 来管理和调度。
下面列出Activity 经常用到的事件:
onKeyDown(int keyCode, KeyEvent event) 按键按下事件
onTouchEvent(MotionEvent event) 点击屏幕事件
onKeyUp(int keyCode, KeyEvent event) 按键松开事件
onTrackballEvent(MotionEvent event) 轨迹球事件
我们来做一个示例,了解一下Android 的管理员Activity 如何处理用户事件。
实现了按键切换,点击事件切换,触摸切换
效果图:
package cn.class3g.activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class ButtonActivity extends Activity {
/** Called when the activity is first created. */
Button bu1, bu2;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
b1();
}
public void b1() {
setContentView(R.layout.main);
bu1 = (Button) this.findViewById(R.id.b1Id);
bu1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
b2();
}
});
}
public void b2() {
setContentView(R.layout.main1);
bu2 = (Button) this.findViewById(R.id.b2Id);
bu2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
b1();
}
});
}
boolean flag = true;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
flag = !flag;
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (flag) {
b1();
} else {
b2();
}
return super.onKeyUp(keyCode, event);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
flag = !flag;
if (flag) {
b2();
} else {
b1();
}
return super.onTouchEvent(event);
}
}