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 如何處理用戶事件。

實現了按鍵切換,點擊事件切換,觸摸切換

效果圖:

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);

}

}


 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章