黑莓中的ObjectChoicefield

时间:2010-07-10 07:00:20

标签: blackberry

我有一个objectchoice字段,其中的选项为YES和NO。 我想在用户选择任何一个选项时处理事件。

例如,当用户选择“是”时,我希望将labelField添加到屏幕。 当选择否时,应从屏幕上删除此标签

请帮忙

2 个答案:

答案 0 :(得分:0)

我认为您可以通过实现FieldChangeListener接口并覆盖fieldChanged事件来实现。

答案 1 :(得分:0)

在您的窗口类中,实现FieldChangeLIstener。

objectChoiceField.setChangeListener(this)

我建议您在标记要添加/删除标签的位置的索引,以便在fieldChanged事件中您可以更轻松地执行您想要的操作而不会有使用无效索引的风险:

if (selectedIndex == 0) { // Yes
    if (!labelField.hasManager()) { 
        // If the field is not already present, add it to the screen. 
        insert(labelField, positionToInsertField); 
    } 
} else {  // No
    if (labelField.hasManager()) { 
        // Our field is currently on the screen - let's remove it now. 
        remove(labelField); 
    } 
}

您可以在下面的代码中找到非常相似行为的示例:

http://svn.bbssh.org/trunk/BBSSH/src/org/bbssh/screens/ConnectionPropertiesScreen.java

查找从fieldChangeListener调用的函数“handleFontTypeChange”。在那里,您将看到基于当前选择(在本例中为truetype字体与位图字体),我们将动态添加和删除控件。