“機器人”的管理員——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);
}
}