键盘事件主要功能是用于进行键盘的监听处理操作,例如:用户输入某些内容之后,可以直接通过键盘事件进行跟踪,下面在文本框上设置键盘的操作事件,将文本框每次输入的内容直接增加到文本显示组件中,键盘事件使用View.OnKeyListener接口进行事件的处理
-
<?xml version="1.0" encoding="utf-8"?>
-
<LinearLayout ? 定义线性布局管理器
-
xmlns:android=""
-
android:orientation="horizontal" ? 所有组件水平摆放
-
android:layout_width="fill_parent" ? 布局管理器的宽度为屏幕宽度
-
android:layout_height="fill_parent"> ? 布局管理器的高度为屏幕高度
-
<TextView ? 文本显示组件
-
android:layout_width="wrap_content" ? 组件宽度为文字宽度
-
android:layout_height="wrap_content" ? 组件高度为文字高度
-
android:text="请输入email地址:"/> ? 默认显示文字
-
<EditText ? 文本输入组件
-
android:id="@+id/input" ? 组件ID,程序中使用
-
android:layout_width="wrap_content" ? 组件宽度为文字宽度
-
android:layout_height="wrap_content" ? 组件高度为文字高度
-
android:selectAllOnFocus="true"/> ? 默认获得焦点
-
<ImageView ? 图片视图,显示图片信息
-
android:id="@+id/img" ? 组件ID,程序中使用
-
android:layout_width="wrap_content" ? 组件宽度为图片宽度
-
android:layout_height="wrap_content" ? 组件高度为图片高度
-
android:src="@drawable/wrong"/> ? 默认显示图片
-
</LinearLayout>
-
public class MyKeyDemo extends Activity {
-
private EditText input = null; // 取得文本输入组件
-
private ImageView img = null; // 定义图片视图
-
@Override
-
public void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
-
super.setContentView(R.layout.main); // 调用布局管理器
-
this.input = (EditText) super.findViewById(R.id.input); // 文本输入组件
-
this.img = (ImageView) super.findViewById(R.id.img); // 取得图片组件
-
this.input.setOnKeyListener(new OnKeyListenerImpl()); // 设置监听
-
}
-
private class OnKeyListenerImpl implements OnKeyListener {
-
@Override
-
public boolean onKey(View v, int keyCode, KeyEvent event) {
-
switch(event.getAction()) {
-
case KeyEvent.ACTION_UP: // 键盘松开触发
-
String msg = MyKeyDemo.this.input.getText().toString();
-
if (msg.matches("\\w+@\\w+\\.\\w+")) { // 判断是否是email
-
MyKeyDemo.this.img.setImageResource(R.drawable.right); // 设置图片ID
-
} else {
-
MyKeyDemo.this.img.setImageResource(R.drawable.wrong); // 设置图片ID
-
}
-
case KeyEvent.ACTION_DOWN: // 键盘按下触发
-
default:
-
break ;
-
}
-
return false; // 继续事件应有的流程
-
}
-
}
-
}
020608_键盘事件.ppt
阅读(1295) | 评论(0) | 转发(1) |