как установить элемент с индексом i как выбранный элемент в списке zk

Я добавил список вариантов, используя ListModelList, в список ZK. Затем я попытался просмотреть этот список вариантов и найти нужный элемент (скажем, «Строка»). Мне нужно установить этот элемент ("String") в качестве выбранного элемента.

Я попробовал код ниже, но он не работает. Есть ли способ сделать это ?

  liveListModel = new ListModelList(new AppModelItem [] { 
        new AppModelItem("String", "string"), 
        new AppModelItem("Number", "number"), 
        new AppModelItem("Array", "array")
    });

    String choice [] = {"String", "Hello", "XYZ" };

    Listbox typesList = new Listbox();
    typesList.setModel(liveListModel);
    for (int i = 0; i < choice.length; i ++) {
        if (choice.[i] == typesList.getItemAtIndex(i).getValue().toString());
        typesList.setSelectedItem(typesList.getItemAtIndex(i));
    }

Спасибо, Сони


person sony    schedule 16.08.2010    source источник


Ответы (1)


Если этот код является вашим исходным кодом, скопированным и вставленным в редактор, удалите точку с запятой после выражения if и используйте equals для проверки строк на равенство. Цикл for должен выглядеть так:

for (int i = 0; i < choice.length; i++) {
    if (choice[i].equals(typesList.getItemAtIndex(i).getValue().toString())) {
        typesList.setSelectedItem(typesList.getItemAtIndex(i));
    }
}

Если это все еще не работает, добавьте код отладки, чтобы проверить, действительно ли getValue() возвращает правильное значение:

for (int i = 0; i < choice.length; i++) {
    if (choice[i].equals(typesList.getItemAtIndex(i).getValue().toString())) {
        typesList.setSelectedItem(typesList.getItemAtIndex(i));
    } else {
      // DEBUG CODE
      System.out.printf("Expected: %s, found: %s%n", typesList.getItemAtIndex(i).getValue().toString());
}
person Andreas Dolk    schedule 16.08.2010