我使用ListModelList向ZK列表框添加了一个选项列表。接下来,我尝试遍历这些选项列表并找到所需的项目(比如“String”)。我需要将此项(“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));
}
谢谢, 索尼
答案 0 :(得分: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());
}