轉載於: http://www.iteye.com/topic/1060325
事件就是用戶與UI界面的交互時所觸發的操作。比如點擊某一個按鈕,會觸發一個事件等
1、最長用的按鈕事件:OnClickListener
Java代碼 收藏代碼
mybutton = (Button)findViewById(R.id.mybutton);
mybutton.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
ShowMessage("點擊了Button按鈕");
}
});
2、我們還可以自定義KeyEvent,比如
Java代碼 收藏代碼
public boolean onKeyDown(int keyCode, KeyEvent event)
{
/**
* 這裏構建KeyEvent對象,功能为返回鍵的功能
* 即我們按任意鍵都是返回鍵功能
*/
KeyEvent key = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);
return super.onKeyDown(keyCode, event);
}
3、手機按鍵的事件處理
Boolean onKeyDown(int keyCode, KeyEvent event):相應按鍵按下
Boolean onKeyUp(int keyCode, KeyEvent event):相應按鍵釋放
Boolean onKeyMultiple():相應按鍵重复點擊
Boolean onTouchEvent(MotionEvent event):相應觸屏事件
Java代碼 收藏代碼
package org.hualang.eventtest01;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class EventTest01 extends Activity {
/**
* 注意,要重寫onKeyDown,onKeyUp,onTouchEvent方法
*/
private Button mybutton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mybutton = (Button)findViewById(R.id.mybutton);
mybutton.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
ShowMessage("點擊了Button按鈕");
}
});
}
/**按鍵按下觸發的事件*/
public boolean onKeyDown(int keyCode, KeyEvent event)
{
switch(keyCode)
{
case KeyEvent.KEYCODE_DPAD_CENTER:
ShowMessage("按下:中鍵");break;
case KeyEvent.KEYCODE_DPAD_UP:
ShowMessage("按下:上方向鍵");break;
case KeyEvent.KEYCODE_DPAD_DOWN:
ShowMessage("按下:下方向鍵");break;
case KeyEvent.KEYCODE_DPAD_LEFT:
ShowMessage("按下:左方向鍵");break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
ShowMessage("按下:右方向鍵");break;
}
return super.onKeyDown(keyCode, event);
}
/**按鍵彈起所觸發的事件*/
public boolean onKeyUp(int keyCode, KeyEvent event)
{
switch(keyCode)
{
case KeyEvent.KEYCODE_DPAD_CENTER:
ShowMessage("彈起:中鍵");
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
ShowMessage("彈起:下方向鍵");
break;
case KeyEvent.KEYCODE_DPAD_UP:
ShowMessage("彈起:上方向鍵");
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
ShowMessage("彈起:左方向鍵");
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
ShowMessage("彈起:右方向鍵");
break;
}
return super.onKeyUp(keyCode, event);
}
/**按鍵重复點擊事件*/
public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)
{
return onKeyMultiple(keyCode, repeatCount, event);
}
/**觸屏事件*/
public boolean onTouchEvent(MotionEvent event)
{
int action = event.getAction();
if(action == MotionEvent.ACTION_CANCEL||action == MotionEvent.ACTION_DOWN||action == MotionEvent.ACTION_MOVE)
{
return false;
}
//得到觸點的位置
String x = String.valueOf(event.getX());
String y = String.valueOf(event.getX());
ShowMessage("觸點坐標:(" + x + "," + y +")");
return super.onTouchEvent(event);
}
/**顯示觸發事件的信息*/
public void ShowMessage(String str)
{
Toast toast = Toast.makeText(this, str, Toast.LENGTH_SHORT);
toast.show();
}
}
運行結果如下:
From:ITEYE
- Jun 07 Sun 2015 01:18
玩轉Android---事件監聽篇---第1篇(轉載)
全站熱搜
留言列表