Java me LUIT:选项卡-如何标记当前选定的选项卡

Java me LUIT:选项卡-如何标记当前选定的选项卡,java-me,nokia,lwuit,lwuit-tabs,Java Me,Nokia,Lwuit,Lwuit Tabs,我有4个标签。每个选项卡由一个按钮表示。这些按钮用于选择当前显示的选项卡。每个按钮都有一个图标和文本 我想通过更改相应按钮的背景颜色和文本标签颜色来突出显示当前选定的选项卡。我想使用主题和资源编辑器来完成它 我创建了主题,并为UIID“Tab”指定了未选中、选中和按下的样式。我的标签在阳光下看起来很棒!好的但我发现在一部真正的手机上,标签看起来总是没有被选中。我试过诺基亚5800 XPressMusic和C7。为什么不同 经过一些实验,我找到了原因——按钮可能只有两种状态:未选择和按下。它们永远

我有4个标签。每个选项卡由一个按钮表示。这些按钮用于选择当前显示的选项卡。每个按钮都有一个图标和文本

我想通过更改相应按钮的背景颜色和文本标签颜色来突出显示当前选定的选项卡。我想使用主题和资源编辑器来完成它

我创建了主题,并为UIID“Tab”指定了未选中、选中和按下的样式。我的标签在阳光下看起来很棒!好的但我发现在一部真正的手机上,标签看起来总是没有被选中。我试过诺基亚5800 XPressMusic和C7。为什么不同

经过一些实验,我找到了原因——按钮可能只有两种状态:未选择和按下。它们永远不会处于选定状态。在emulator上,当我使用navi键移动到按钮时,它将变为选中状态


那么,如何标记当前选项卡呢?

您可以使用几种不同的方法,特别是在1.5中

LWUIT 1.5有一个选项卡组件,它几乎可以为您做任何事情,并且非常灵活

它使用单选按钮来调用方法
setToggleButton(true)
。切换按钮的作用类似于单选按钮,因此当您按下组中的按钮时,该按钮将保持按下状态,并使用切换按钮样式进行渲染(您可以将UIID设置为所需的任意值)。请参见LWUIT演示的字体演示部分中使用切换按钮的示例


对于旧版本的LUIT,一个可行的选项是,按下按钮时,只需将按钮的UIID设置为不同的值(并将以前选择的按钮的UIID恢复为原始值)。

我实现了我需要的功能。感谢Shai和他的榜样

我没有使用主题属性,在代码中进行了所有自定义。我这样做是因为我没有意识到设置唯一UIID对我有什么帮助,因为问题不在于确定需要更改道具的UIID,而在于确定要更改的按钮样式

下面是我的解决方案的一些重要注释

  • 在按钮添加到选项卡后,调用
    addActionListener
  • 当按下任何选项卡按钮时,更新选项卡按钮的未选定样式。你也可以改变他们的图标
  • 在步骤2之后调用表单的
    repaint()

  • 您使用的是哪一版本的LWUIT?该按钮无法保持按下状态。