Событие click в поле растрового изображения дает исключение: manager. заменить: у newField уже есть менеджер - PullRequest
0 голосов
/ 26 марта 2012

у меня есть 5 растровых изображений в HorizontalField, когда я нажимаю на растровое изображение, то растровое изображение показывает исключение менеджер. заменить: у newField уже есть менеджер Я использую этот код:

hfm = new     HorizontalFieldManager(Field.FIELD_HCENTER|Field.FIELD_VCENTER);
bitmapField1 = new BitmapField(mImgTable , BitmapField.FOCUSABLE) {
              protected boolean navigationClick(int status, int time )
              { try{
                  //Dialog.alert("image changed");
                  hfm.replace(bitmapField1, bitmapField6);
                  hfm.replace(bitmapField2, bitmapField);
                  hfm.replace(bitmapField3, bitmapField);
                  hfm.replace(bitmapField4, bitmapField);
                  hfm.replace(bitmapField5, bitmapField);

              }catch(Exception e){ 
                 Dialog.alert("choose only one"+e);
              }
                  return true;
              }
          };
      hfm.add( bitmapField1);

Ответы [ 3 ]

2 голосов
/ 26 марта 2012

Из описания метода замены:

replace: удаляет поле из этого менеджера и заменяет его на другое поле. Указанный oldField должен быть прямым потомком этого менеджер и указанный newField не должны управляться любым Менеджер, включая этот.

Здесь вы заменяете bitmapField на другие несколько раз на один и тот же Менеджер:

              hfm.replace(bitmapField2, bitmapField);
              hfm.replace(bitmapField3, bitmapField);
              hfm.replace(bitmapField4, bitmapField);
              hfm.replace(bitmapField5, bitmapField);
1 голос
/ 26 марта 2012

Не заменяйте ваш HorizontalFieldmanager подобным образом hfm.replace (bitmapField1, bitmapField6) ;.Просто замените ваше изображение следующим образом bitmapField1.setBitmap (bitmapField6);Для всех ваших изображений ..

Это работает в моем случае

0 голосов
/ 27 марта 2012

Перед заменой bitmapField необходимо его инициализировать.

...