检查j2me中的CustomItem是否支持遍历?
我应该如何在j2me支持遍历中检查CustomItem?
答案 0 :(得分:1)
您可以向表单添加任意数量的项目。该框架管理MIDP内置的所有项目的以下内容
但是当您扩展CustomItem并实现自己的项目时,完全控制就在实现中。考虑一个Form包含TextField和CustomItemImpl并且您希望在TextField和CustomItemImpl之间切换的情况。由于密钥处理,命令处理和呈现都在CustomItemImpl的控制之下,因此必须有一种框架必须知道何时希望TextField具有控制权以及何时需要将控件传递给CustomItemImpl。
这里是CustomItem中的traverse()方法的步骤。当你完成在CustomItemImpl中渲染和捕获数据时返回false,当你想在CustomItemImpl中保留控件时返回true。
让我进一步阐述。假设您正在实现TreeItem。当焦点在TreeItem上时,您希望执行以下操作:
以上所有功能都构成了TreeItem实现的一部分。但是,当您将KEY_UP移动到树的第一个节点或KEY_DOWN超过树的最后一个节点时,您希望移动到TextField /与此TreeItem相邻的任何其他项。您让框架了解您的意图的方式是
希望这能澄清您的疑问。我强烈建议您查看这个特定的example以获得更具体的说明。
答案 1 :(得分:0)
我找到了解决方案。它对我有用。
正确的解决方案调用类“javax.microedition.lcdui.CustomItem”的方法“getInteractionModes()”的设备支持查找CustomItem遍历。
下面给出了代码段
int supported_interaction_modes=this.getInteractionModes();
boolean horizontal__interaction,vertical_interaction;
if((supported_interaction_modes&CustomItem.TRAVERSE_HORIZONTAL)!=0) //Horizontal traverse support
horizontal_interaction=true;
else
horizontal_interaction=false;
if((supported_interaction_modes&CustomItem.TRAVERSE_VERTICAL)!=0)
vertical_interaction=true;
else
vertical_interaction=false;
在上面的代码片段中,“this”指的是派生自“javax.microedition.lcdui.CustomItem”的类的对象
答案 2 :(得分:-1)
boolean isCustomItemSupported;
try {
Class.forName("javax.microedition.lcdui.CustomItem");
isCustomItemSupported = true;
} catch (Exception e) {
isCustomItemSupported = false;
}