как установить элемент с индексом «i» как выбранный элемент в списке ZK - PullRequest
0 голосов
/ 16 августа 2010

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

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

  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));
    }

Спасибо, Sony

1 Ответ

1 голос
/ 17 августа 2010

Если этот код является вашим исходным кодом, скопированным и вставленным в редактор, удалите точку с запятой после выражения 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());
}
...