編輯:中級開發
一、 重點
1. 如何使用handler和message
2. 如何延時調用
1) 使用延遲發消息的方式
二、 舉例
1. 功能:實現一個應用界面,在用戶長按觸模屏兩秒後,打出Log信息
2. 步驟:
1) 建立project
a) 在eclipse中點擊菜單File->New->Project……
b) 選擇android Project按Next
c) 填寫project的各項內容如下
Project name: test_xy // 目錄名, 它位於你設定的workspace之下
Package name: com.android.test //打包名稱
Activity name: .TestXy // 類名(生成文件TestXy.Java)
Application name: test_xy // 可執行程序名
然後點Finish按鈕
2) 修改TestXy.Java代碼如下
package com.android.test;import android.app.Activity;
import android.os.Bundle;
import android.vIEw.MotionEvent;
import android.os.Handler;
import android.os.Message;
import android.util.Log;publicclass TextXy extends Activity {
staticfinalintMESSAGE_LONG_PRESS = 1; // 定義長按事件ID
staticfinalintLONG_PRESS_TIMEOUT = 2000; // 定義長按為2秒
final Handler mHandler = new LongPressHandler(); // 定義handler class LongPressHandler extends Handler { // handler類的實現
publicvoid handleMessage(Message msg) { // 事件處理函數
switch (msg.what) {
caseMESSAGE_LONG_PRESS: // 選擇事件ID
Log.d("TEST_XY", "now long press!");
break;
}
}
} @Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentVIEw(R.layout.main);
} publicboolean onTouchEvent(MotionEvent ev) { // 處理觸屏事件
int action = ev.getAction(); // 得到觸屏動作
if (action == MotionEvent.ACTION_DOWN) { // 手指按下
mHandler.sendMessageDelayed(mHandler
.obtainMessage(MESSAGE_LONG_PRESS),
ONG_PRESS_TIMEOUT); // 延時2秒後發送事件
} elseif (action == MotionEvent.ACTION_UP) { // 手指抬起
mHandler.removeMessages(MESSAGE_LONG_PRESS);
// 取消延時事件
}
returnfalse; }
3) 運行
a) 在eclipse中點擊菜單Run->Run Configurations……
b) 雙擊左邊的android Application,產生了一個New Configuration,點開它填寫內容如下:
Name: yan_config // 隨便起一個
Project: test_xy // 剛才起的project, 即目錄名
c) 點擊Apply,然後點Run,多等一會兒就出來了
d) 此時點擊右上的DDMS,可看到Log信息,在長按屏幕兩秒後,可看到剛才加入的Log信息
<?XML version=1.0 encoding=utf-8?> 然後是主布局,一個水平滾動條,放入menu
在Android 3.0中除了我們重點講解的Fragment外,Action Bar也是一個重要的內容,Action Bar主要是用於代替傳統的標題欄,對於androi
簡介: 有幾個網站從事一些非盈利服務,提供一些可輕松設置和使用的表單來進行民意測驗和數據收集。本教程介紹一個簡單的架構來為 android 設計類似的應用程
兩位Google開發者演示了Android 3.0——該開源移動操作系統的首個支持平板設備的版本。Android 3.0也被稱為蜂巢(Honeycomb),這也是第一個