我在我的应用程序中混合了一些不同类型的命令,如OK,CANCEL,BACK,EXIT,SCREEN。
例如,
exit = new Command("Exit", Command.EXIT, 5);
_123=new Command("123",Command.BACK,4);
ABC=new Command("ABC",Command.CANCEL,3);
sample1=new Command("Sample1",Command.SCREEN,1);
sample2=new Command("Sample2",Command.OK,2);
我需要的订单是:Sample1,Sample2,ABC,退出。但它显示如Sample1,Sample2,Exit,ABC是右侧,123是放在左侧按钮。
这里,我在使用下面的代码添加一个命令(Edit_Cell)时也有一个问题....而且我需要在Sample1之前的第一个地方显示它。但是它显示在右边所有命令的结尾侧。
我在另一个src文件构造函数中添加了这个新命令(Edit_Cell),并在上面代码的下面调用该构造函数(添加命令)。
Edit_Cell是SCREEN的类型,而另一个源文件中的PRIORITIES是1。
我需要的最终订单是:Edit_Cell,Sample1,Sample2,ABC,Exit, on right hand side and _123
在左侧。
答案 0 :(得分:5)
首先,如果没有冒犯,我认为你应该详细说明你的书面作文,我花了一些时间来理解这个问题。
然而,根据这个(诺基亚的维基论坛),你声称命令的方式是有道理的:
软键的命令映射遵循以下规则:
右软键:只能有一个 “否定”命令(STOP,CANCEL, 按此优先顺序退出,退出) 映射到右软键,和 直接映射的命令 由软键按下。
左软键:可以使用多个命令 在左软键下映射 左边有“选项”标签 软键和选择将打开 一个命令菜单。如果有的话 只有一个“积极的”命令(好的, 左下方的项目,屏幕或帮助 软键将直接呈现 在左软键上。 (注意:有些LCDUI 组件有自己的操作 这也将在左下方可见 软键因此强制选项菜单。)如果 有多个负面命令 这将强制左侧的选项菜单 软键和命令将是 在下面定义的顺序中提供。
中软键:在40系列中只有一个 单个上下文敏感命令(好的, ITEM)映射到Middle软键。在 S60多重上下文敏感 命令(OK,ITEM)可以映射到 中软键。如果只有单身 命令将直接显示在 软键,否则命令是 在上下文相关菜单中可见 从中间的软键打开。一般 相同的命令映射到Middle 左侧也有软键 软键(直接或通过选项 菜单)。注意:一些UI组件 覆盖此规则并放置组件 具体操作直接到中间 软键。例如,POPUP ChoiceGroup有“开放”操作 中软键。
显然这在很大程度上取决于平台,但似乎你的midlet假定_123
为负命令,而其他所有其他都放在另一个软键上。
我会尝试更改类型并根据您的意愿设置优先级......类似这样的
exit = new Command("Exit", Command.EXIT, 5);
_123=new Command("123",Command.BACK,0);
ABC=new Command("ABC",Command.SCREEN,3);
sample1=new Command("Sample1",Command.SCREEN,1);
sample2=new Command("Sample2",Command.OK,2);
您可以将Edit_Cell
的优先级设置为0,将其类型设置为SCREEN
。只需添加:ITEM
命令通常放在之前。
我希望这会有所帮助。 问候。
答案 1 :(得分:0)
我在这里回复你的评论,它不那么凌乱......
也许它按照添加的顺序显示命令(不使用优先级)。添加Edit_Cell
后,我会删除所有命令,并在添加Edit_Cell
后再次添加所有命令。
如果您只能修改表单的代码,那么您可以覆盖addCommand
方法以确保在添加Edit_Cell
时删除所有先前的命令并在以后再次添加。
这样的事情:
@Override
public void addCommand(Command cmd) {
if (cmd.getLabel().equals("Edit_Cell")){
removeCommand(sample1); // with all the previously added commands
}
super.addCommand(cmd);
if (cmd.getLabel().equals("Edit_Cell")){
addCommand(sample1); // again with all your previously added commands
}
}
它不是很优雅,但是,只要它有效,你总能让它变得更优雅....