【发布时间】:2013-11-11 22:31:16
【问题描述】:
在我从 ObjectChoiceField 获得 number 个我想要的字段后,我正在尝试创建几个 BasicEditField 对象。
问题:我添加到屏幕的BasicEditField 字段不会刷新,除非我在ObjectChoiceField 的侦听器中执行此操作。
我想做什么:
- 选择我想要的
BasicEditFields的号码。 - 刷新屏幕以显示添加的字段。
PD:如果您需要更多信息,请告诉我,对不起我的英语。我是 BlackBerry 平台开发的新手
public final class MyScreen extends MainScreen
{
private int fields_lenght;
public MyScreen()
{
// Set the displayed title of the screen
setTitle("Example");
fields_lenght =0;
final String shortcodes[] = {"1","2","3"};
final ObjectChoiceField dropdownlist=new ObjectChoiceField("Select a number of fields",shortcodes);
this.add(dropdownlist);
dropdownlist.setChangeListener( new FieldChangeListener() {
public void fieldChanged( Field arg0, int arg1 ) {
if(arg1 != PROGRAMMATIC){
fields_lenght= Integer.parseInt(shortcodes[dropdownlist.getSelectedIndex()]);
}
}
} );
// how to refresh the screen with the new fields ???
BasicEditField fields[]=new BasicEditField [fields_lenght] ;
for(int i = 0; i<fields.length;i++){
fields[i]=new BasicEditField("Campo "+i,"");
this.add(fields[i]);
}
}
}
【问题讨论】:
-
你能告诉我们你在哪里添加新的 BasicEditFields 的代码吗? (只需单击问题下方的 edit 链接并将代码添加到您的问题中)另外,您是否有原因不想想要在 ObjectChoiceField 侦听器中执行此操作?
-
@Nate 你好 Nate 现在你可以看到我想做的一个例子了。
-
@Nate 我不想在 ObjectChoiceField 侦听器中使用它,因为它添加的字段比我需要的多,因为侦听器将拨轮单击和移动视为相同的操作,我试图覆盖拨轮单击和移动但它没有用。我也想删除字段,例如,如果选择从 3 更改为 2,这意味着我必须删除一个字段。我希望我自己解释。我从屏幕上读到了 Invalidate() 方法,但我真的不明白如何实现它。
标签: blackberry blackberry-eclipse-plugin blackberry-jde blackberry-basiceditfield