Android开发下上左右与返回键的按键捕捉事件
Android开发:上下左右与返回键的按键捕捉事件
键盘中的上下左右与返回键。可以直接监听,不需要在xml或者其他地方注册。
主要方法是:
public boolean onKeyDown(int kCode,KeyEvent kEvent)
{
switch(kCode)
{
case KeyEvent.KEYCODE_DPAD_LEFT:
return true;
case KeyEvent.KEYCODE_DPAD_UP:
return true;
case KeyEvent.KEYCODE_DPAD_RIGHT:
return true;
case KeyEvent.KEYCODE_DPAD_DOWN:
return true;
case KeyEvent.KEYCODE_DPAD_CENTER:
return true;
case KeyEvent.KEYCODE_BACK:
return false; }
return super.onKeyDown(kCode,kEvent);
}
具体实现例子是:
package com.ldci.logger;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
public class MyKeyDown extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public boolean onKeyDown(int kCode,KeyEvent kEvent)
{
switch(kCode)
{
case KeyEvent.KEYCODE_DPAD_LEFT:
Log.v( MyKeyDown , onkeydown=left );
return true;
case KeyEvent.KEYCODE_DPAD_UP:
Log.v( MyKeyDown , onkeydown=up );
return true;
case KeyEvent.KEYCODE_DPAD_RIGHT:
Log.v( MyKeyDown , onkeydown=right );
return true;
case KeyEvent.KEYCODE_DPAD_DOWN:
Log.v( MyKeyDown , onkeydown=down );
return true;
case KeyEvent.KEYCODE_DPAD_CENTER:
Log.v( MyKeyDown , onkeydown=center );
return true;
case KeyEvent.KEYCODE_BACK:
Log.v( MyKeyDown , onkeydown=where );
return false; }
return super.onKeyDown(kCode,kEvent);
}
}
直接写在代码中,就可以测试了。
1 楼 amewow 2010-12-19
返回是屏蔽了,不过上下左右貌似不行啊。。
2 楼 logger 2010-12-20
amewow 写道
返回是屏蔽了,不过上下左右貌似不行啊。。
我的可以顺利运行啊。。。要不把你试验代码发过来,大家一起研究一下啊。