Проблема RadioButtonGroup на OS 6 - PullRequest
0 голосов
/ 21 января 2011

Следующий фрагмент кода хорошо работает в Blackberry OS 4 и 5. Но в OS 6 он не показывает опцию переключателя «Женский».Может кто-нибудь объяснить причину этого, предложить решение, которое работает для всех ОС Blackberry?

LabelField genderLabelField = new LabelField("Gender:");
RadioButtonGroup radioButtonGroup = new RadioButtonGroup();

RadioButtonField maleRadioField = new RadioButtonField("Male");
RadioButtonField femaleRadioField = new RadioButtonField("Female");

private VerticalFieldManager createUI()
{       
    VerticalFieldManager vfmForm = new VerticalFieldManager();

    vfmForm.add(joinf2fLabelField);

    firstNameEditField.setMargin(0, 0, 5, 0);
    vfmForm.add(firstNameLabelField);
    vfmForm.add(firstNameEditField);

    lastNameEditField.setMargin(0, 0, 5, 0);
    vfmForm.add(lastNameLabelField);
    vfmForm.add(lastNameEditField);

    emailEditField.setMargin(0, 0, 5, 0);
    vfmForm.add(emailLabelField);
    vfmForm.add(emailEditField);

    passwordEditField.setMargin(0, 0, 5, 0);
    vfmForm.add(passwordLabelField);
    vfmForm.add(passwordEditField);

    confirmPasswordEditField.setMargin(0, 0, 5, 0);
    vfmForm.add(confirmPasswordLabelField);
    vfmForm.add(confirmPasswordEditField);

    vfmForm.add(genderLabelField);

    radioButtonGroup.add(maleRadioField);
    radioButtonGroup.add(femaleRadioField);

    HorizontalFieldManager hfmGender = new HorizontalFieldManager();

    maleRadioField.setMargin(new XYEdges(0, 5, 0, 0));
    hfmGender.add(maleRadioField);
    hfmGender.add(femaleRadioField);

    hfmGender.setMargin(new XYEdges(5, 0, 10, 0));
    vfmForm.add(hfmGender);

    vfmForm.add(dateField);

    HorizontalFieldManager hfmButtons = new   HorizontalFieldManager(FIELD_HCENTER | FIELD_VCENTER);

    hfmButtons.add(submitButton);
    submitButton.setMargin(new XYEdges(0, 10, 0, 0));

    hfmButtons.add(cancelButton);
    hfmButtons.setMargin(new XYEdges(10, 0, 5, 0));

    vfmForm.add(hfmButtons);        

    return vfmForm;
}

1 Ответ

0 голосов
/ 23 января 2011

Я получил это работает. Это ошибка Blackberry OS 6, если у вас есть два переключателя в HorizontalFieldManager, он не будет отображать второй. Вам просто нужно расширить RadioButtonField и использовать его вместо оригинала.

class RadioButtonFieldPatch extends RadioButtonField
{
    RadioButtonFieldPatch(String label)
    {
        super(label);
    }

    RadioButtonFieldPatch(String label, RadioButtonGroup group, boolean selected)
    {
        super(label, group, selected);
    }

     protected void layout(int width, int height)
     {
         int pWidth = this.getPreferredWidth();
         setExtent(pWidth, height);
         super.layout(pWidth, height);
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...