CodenameOne Final Переменная ошибка с iOS - PullRequest
1 голос
/ 09 апреля 2019

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

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 может контролировать эту ситуацию? Есть идеи как преодолеть проблему?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...