您的位置:首页 > 移动开发 > Android开发

android系统上面的输入法,针对手机用户,已经做的比较完善了,但是如果在TV上面跑的话,就需要做一些改动。

2013-07-18 14:31 337 查看
我们已经练习了不少view了,在button介绍一文中,我们介绍了button事件的响应,然后在介绍其他view控件的时候,也介绍了不少响应这些控件的响应事件,看得出响应方法都是系统的一些回调函数在起作用,今天,我们在学习下Android虚拟键盘上下左右键按下和弹起的响应事件,由于代码简单,我就不再累赘的说明和交待了,看代码即可知用法。

动作一

创建EventsHandlerTest项目工程,这是我完成之后的目录:




动作二

在布局文件中,添加一个ListView控件,这个TestView主要是来显示和交待按键情况的,完整代码如下:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello" />

<TextView

android:id="@+id/display"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:gravity="center" />

</LinearLayout>

动作三

修改主要的代码,理解见注解:

package org.ourunix.android.eventshandle;



import android.app.Activity;

import android.os.Bundle;

import android.view.KeyEvent;

import android.widget.TextView;



public class EventsHandleActivity extends Activity {

private TextView mTextView;



public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);



mTextView = (TextView) findViewById(R.id.display);

}


// 按键按下,所触发的事件

public boolean onKeyDown(int keyCode, KeyEvent event) {

switch (keyCode) {

case KeyEvent.KEYCODE_DPAD_CENTER:

display("中键报道,被按下");

break;

case KeyEvent.KEYCODE_DPAD_DOWN:

display("下键报道,被按下");

break;

case KeyEvent.KEYCODE_DPAD_LEFT:

display("左键报道,被按下");

break;

case KeyEvent.KEYCODE_DPAD_RIGHT:

display("右键报道,被按下");

break;

case KeyEvent.KEYCODE_DPAD_UP:

display("上键报道,被按下");

break;

}
return super.onKeyDown(keyCode, event);

}


// 按键弹起,所触发的事件

public boolean onKeyUp(int keyCode, KeyEvent event) {

switch (keyCode) {

case KeyEvent.KEYCODE_DPAD_CENTER:

display("中键报道,被弹起");

break;

case KeyEvent.KEYCODE_DPAD_DOWN:

display("下键报道,被弹起");

break;

case KeyEvent.KEYCODE_DPAD_LEFT:

display("左键报道,被弹起");

break;

case KeyEvent.KEYCODE_DPAD_RIGHT:

display("右键报道,被弹起");

break;

case KeyEvent.KEYCODE_DPAD_UP:

display("上键报道,被弹起");

break;

}
return super.onKeyUp(keyCode, event);

}


// 用来显示文本框内容

public void display(String str) {

mTextView.setText(str);
}
}

动作四

运行EventsHandlerTest,效果如下:

运行程序,未按键



按上键



离开上键,其他类似



源码:EventsHandlerTest
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐