Не удалось удалить поле из менеджера - PullRequest
0 голосов
/ 21 июня 2011

я добавил два поля кнопок в горизонтальный менеджер, и когда я пытаюсь удалить его из менеджера из другого потока, я получаю исключение индекса из границ.

Вот пример того, что я сделал -

hfm.add(button1);
hfm.add(button2);
layout.add(hfm);

// on clicking button it starts a different thread which
// tries to delete the two buttonFields from the manager.

fieldChanged(Field field1,int arg1) {
    if(field1==button1) {
        populateUI();//This function starts a new Thread
    }
}

populateUI() {
    //...............//
    run() {
        //...............//
        hfm.deleteAll();//this line gives an exception whereas
                        //on applying debug it shows field count as 2 
    }
}

Так почему же он показывает ошибку, даже если в ней есть поля ??? В остальном все работает нормально.

Я даже пытался удалить его по отдельности ...

hfm.delete(0);
hfm.delete(1);

но все та же ошибка - исключение индекса вне границ

1 Ответ

1 голос
/ 02 апреля 2012

Вы можете использовать:

UiApplication.getUiApplication().invokeLater(new Runnable() {
  public void run() {   
  HorizontalFieldManager newHfm = new HorizontalFieldManager();
  replace ( hfm , newHfm );
  }
});

и вуаля!Ваш HFM как новый ..

...