×
Namespaces

Variants
Actions

为Canvas和CustomItem调用虚拟键盘

From Nokia Developer Wiki
Jump to: navigation, search
WP Metro Icon Chinese.png
Article Metadata

测试基于
SDK: Nokia SDK for Java 2.0

兼容于
文章
Amazing1100 在 13 Jul 2012 创建
最后由 hamishwillee 在 23 Oct 2013 编辑

Contents

Introduction

Nokia SDK for Java 2.0版本主要是针对全触屏设备,没有了键盘,所以提供了虚拟键盘,供用户输入信息。


虚拟键盘

虚拟键盘相关API 允许MIDlet为Canvas以及基于Canvas的组件启动一个虚拟键盘,比如说 GameCanvas, FullCanvas, 以及处于竖屏状态的CustomItem.


MIDlet可以使用虚拟键盘相关的API实现:

  • 启动虚拟键盘
  • 监听虚拟键盘的隐藏以及显示,获取事件通知
  • 获取当前虚拟键盘的可见性相关信息
  • 当虚拟键盘可见性改变时,禁止sizeChanged函数的触发


虚拟键盘API定义了如下虚拟键盘种类:

  • CUSTOM_KEYBOARD: 这是一个由MIDlet通过API来启动,以及控制的虚拟键盘,它是有平台系统所提供的。
  • SYSTEM_KEYBOARD: 这是一个由系统启动,以及控制的,对于 高级UI组件,比如TextEditor,TextField 来说,使用就是这种类型。 并且这种类型的虚拟键盘是不够通过API来控制的。

虚拟键盘API通常用于需要输入的 low-level UI 组件。


相关API

虚拟键盘相关API主要有下面3个类及接口:

名称 描述
CustomKeyboardControl 用来启动,以及提供对虚拟键盘的控制
KeyboardVisibilityListener 虚拟键盘 显示,隐藏 的监听接口
VirtualKeyboard 通过该类来创建一个CustomKeyboardControl,以及获取当前虚拟键盘的相关信息,隐藏,显示默认打开键盘的命令(画布等中)。 你还可以使用该类,当虚拟键盘隐藏或打开时,屏蔽sizeChanged函数的调用。


设备兼容性

需要注意的是这些API仅仅在支持 Java Runtime 2.0.0的设备中才可以使用的,使用时需要注意判断当前设别是否支持。


API的使用实例

The following code snippet shows how to launch, control, and hide a virtual keyboard.

下面代码演示了如果使用这些API来启动,控制以及隐藏一个虚拟键盘。

try {
 
// Get the CustomKeyboardControl singleton instance
CustomKeyboardControl vkbControl = VirtualKeyboard.getCustomKeyboardControl();
 
// Launch a virtual keyboard of the specified type and in the specified mode
vkbControl.launch(VirtualKeyboard.VKB_TYPE_ITUT, VirtualKeyboard.VKB_MODE_DEFAULT);
 
// ...
 
// Change the mode to numeric
vkbControl.setKeyboardMode(VirtualKeyboard.VKB_MODE_NUMERIC);
 
// ...
 
// Hide the virtual keyboard
vkbControl.dismiss();
 
} catch (IllegalArgumentException iae) {
// Handle the exception
} catch (IllegalStateException ise) {
// Handle the exception
}

从上面的代码中可以看到,你可以在启动虚拟键盘时,指定它的类型(VKB_TYPE_ITUT 等)或者指定他的模式(数字模式,字母模式 等). 当然你也可以不指定,这时将会使用默认值。 对于已经启动的虚拟键盘,你也可以使用setKeyboardType 来重置它的类型。



下面的代码演示了如何实现虚拟键盘的监听接口,以便获取虚拟键盘的启动,隐藏事件通知。

class VirtualKeyboardListener implements KeyboardVisiblityListener {
 
int myDisplayHeight;
 
VirtualKeyboardListener() {
 
// Set the current class as KeyboardVisiblityListener
VirtualKeyboard.setVisibilityListener(this);
 
// Specify myDisplayHeight
// ...
 
}
 
// Called when a virtual keyboard is launched (shown)
void showNotify(int keyboardCategory) {
 
// Determine the height left for the MIDlet UI to use
int visibleHeight;
try {
visibleHeight = myDisplayHeight - VirtualKeyboard.getHeight();
} catch (IllegalStateException ise) {
// Handle the exception
}
 
// Refresh the screen
// ...
 
}
 
// Called when a virtual keyboard is dismissed (hidden)
void hideNotify(int keyboardCategory) {
 
// The MIDlet UI can use the full height available
int visibleHeight = myDisplayHeight;
 
// Refresh the screen
// ...
 
}
 
}

相关链接

This page was last modified on 23 October 2013, at 08:24.
180 page views in the last 30 days.