Ошибка Последней переменной CodenameOne с iOS

#variables #codenameone #final

#переменные #codenameone #Финал

Вопрос:

У меня есть фрагмент кода, работающий, как ожидалось, в Android, но не в iOS. Проблема заключается в значении конечной переменной ‘nombre’, которая в Android получает ожидаемое значение, тогда как в iOS она получает другое, случайно выбранное из списка (указанное в предоставленном codesnippet)

 public AsignarNombreCDF(){
    this.departamentoId = AdministradoresApp.departamentoId;
    this.setLayout(BoxLayout.y());
    this.setTitle("Asignar Nombre a CDF");
    TopBarUtils.addMenuToTopbar(this);
    TopBarUtils.addCommandToTopbarMenu(this, "Inicio Departamento", e->{new MenuDepartamento(departamentoId).show();});
    try {
        Map m = Utils.consultaWebService("newfoldernames", new Object[]{"department", departamentoId});
        String folderNameMatrix = (String) m.get("FolderNameMatrix");
        Map m_ = (Map) JSONUtils.fromJsonString(folderNameMatrix);
        Iterator it = m_.keySet().iterator();
        while(it.hasNext()){
            String k = (String) it.next();
            final String nombre = (String) m_.get(k);
            Button b = new Button(nombre);
            b.addActionListener(e->{cargarFotos(nombre);});
            this.add(b);
        }
        int y = 2;
    } catch (Exception ex) {
        Utils.gestionaExceptionUi(ex);
    }

}
  

Проблема в том, что конечная переменная nombre, похоже, неправильно присваивает значение, переданное прослушивателю кнопок. Это, как уже было сказано, происходит только в IOS, а не в Android, где мы никогда не получаем несоответствия. Есть ли шанс, что система сборки iOS может контролировать эту ситуацию?. Есть какие-нибудь идеи, как преодолеть эту проблему?

С уважением. Карлос.

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

1. Отличается ли значение кнопки и события? Например. название кнопки 1 и событие действия действуют так, как будто это 2 ? Это довольно простой материал, и у меня есть много кода, который выглядит подобным образом, поэтому я сомневаюсь, что это возможно. Я предполагаю, что ошибка в другой области кода.

2. Привет, Шай, это именно то, что происходит. Я нажимаю на кнопку 1, но событие запускается так, как если бы было нажато 2. Для меня это выглядит как проблема сборки. Если вы хотите, я могу предоставить видео, демонстрирующее проблему. С уважением.

3. Звучит больше как условие гонки. Что это за код cargarFotos ? Работает ли этот код на EDT?