как добавить флажок, поле метки в HorizontalFieldManager

#blackberry #horizontalfieldmanager

#ежевика #horizontalfieldmanager

Вопрос:

Я написал простую программу, которая добавляет два поля редактирования в диспетчер полей:

     HorizontalFieldManager hrfm = new HorizontalFieldManager(Manager.HORIZONTAL_SCROLL);        

    EditField editField1 = new EditField();           
    editField1.setText("User Name:");
    EditField editField2 = new EditField();
    editField2.setText("Hello");

    hrfm.add(editField1);
    hrfm.add(editField2); 
    add(hrfm);
  

Но когда я запускаю эмулятор, он отображает только поле имени пользователя. Я не могу найти другое поле редактирования. Почему возникает эта проблема. Я также столкнулся с аналогичной проблемой при добавлении флажка, LabelField. Пожалуйста, помогите мне использовать этот FieldManager. Спасибо

Ответ №1:

Проверьте, как реализовать дополнительные кнопки, поля и менеджеры.

Существует JustifiedHorizontalFieldManager - это должно решить ваши потребности.

Комментарии:

1. 1, @user609282 здесь происходит то, что первое поле редактирования использует все доступное пространство, поэтому у вас нет места для 2-го поля. Вы можете переопределить ширину на что-то статическое в подстроке EditField, но более аккуратным решением является использование расширенного пакета пользовательского интерфейса, как предлагает этот ответ.

Ответ №2:

 Hope this will helps you.

EditField editField1 = new EditField();           
editField1.setText("User Name:");
EditField editField2 = new EditField();
editField2.setText("Hello");
int Width = editField1.getPrefferedWidth() editField2.getPrefferedWidth();
int Height = editField1.getPrefferedHeight() editField2.getPrefferedHeight();
HorizontalFieldManager hrfm = new HorizontalFieldManager(Manager.HORIZONTAL_SCROLL)
{
   protected void sublayout(int maxWidth, int maxHeight) {
                super.sublayout(Width, Height);
                super.setExtent(Width, Height)
            }
}        
hrfm.add(editField1);
hrfm.add(editField2); 
add(hrfm);