Я пытаюсь создать пару объектов BasicEditField
после того, как я получу номер полей, которые я хочу от ObjectChoiceField
.Как создать число полей динамически в Blackberry Java SDK 5.0?
Проблема: поля BasicEditField
, которые я добавляю на свой экран, не обновляются, если я не делаю это в слушателе от моего ObjectChoiceField
.
то, что я хочу сделать:
- выбрать количество
BasicEditFields
, что я хочу. - обновите экран, чтобы появилось поле.
PD: если вам нужна дополнительная информация, просто скажите мне, и извините за мой английский. Я новичок в разработке для plataform 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? (просто нажмите ссылку ** изменить ** под вопросом и добавьте код в свой вопрос). Также есть причина, по которой вы ** не хотите делать это в слушателе ObjectChoiceField? – Nate
@Nate Hello Nate хорошо теперь вы можете увидеть пример того, что я хочу сделать. – AmirG
@Nate Я не хотел использовать его в слушателе ObjectChoiceField, потому что он добавляет больше полей, чем мне нужно, так как слушатель принимает щелчок и движение трек-колесо как одно и то же действие, я пытался переопределить щелчок и движение колесика, но он не работал. Также я хотел бы удалить поля, например, если выбор изменится на 2 из 3, что означает, что мне нужно будет удалить одно поле. Надеюсь, я объяснил сам. я читаю о методе Invalidate() с экрана, но я действительно не понимаю, как его реализовать. – AmirG