Tl; dr:,即使我用值填充数组,我的文本字段中也没有显示字符串“ 0”。
我有一组标签名称:
private String[] label_names2 = new String[] { "Name", "Motto", "Primary Color", "Secondary Color", "Image", "0",
"0", "0", "0", "0", "Name", "Broom", "Sex", "Seeker", "Keeper", "Chaser1", "Chaser2", "Chaser3", "Beater1",
"Beater2" };
由于我使用libGDX,所以我使用表
table_fans = new Table(game.getSkin());
声明了一个TextField
数组:
array_textfields = new Array<TextField>();
并在其中添加了我标签的前10个项目:
for (int i = 0; i < 10; i++) {
array_textfields.add(createTextField(label_names2[i]));
if (i >= 5) {
array_textfields.get(i).setTextFieldListener(new TextField.TextFieldListener() {
@Override
public void keyTyped(TextField textField, char c) {
try {
Integer.parseInt(textField.getText());
} catch (Exception e) {
textField.setText(Integer.toString(0));
}
}
});
}
}
我继续添加标签和文本字段:
table_fans.add(array_labels.get(1)).growX().row(); // Adds the text "Fan" to the Team Configuration
for (int i = 5; i < 9; i = i + 2) {
table_fans.add(array_labels.get(i + 3)).fillX(); // Goblins, Trolls
table_fans.add(array_textfields.get(i)).left().pad(15);
table_fans.add(array_labels.get(i + 4)).fillX(); // Elves, Nifflers
table_fans.add(array_textfields.get(i + 1)).left().pad(15).row();
}
table_fans.add(array_labels.get(12).fillX()); // Adds the label "Wombats"
table_fans.add(array_textfields.get(9)).left().pad(15); // This doesn't work properly
问题是上面编写的最后一行代码。特别是.get(9)
。标签名称数组的第九项为“ 0”。但是,它没有显示。 (请参见屏幕截图1)。取而代之的是,它出现在Seeker旁边的“文本字段”中(并将它们移位1)。如果我使用.get(8)
,它将从“ Nifflers”中获取带有“ 0”的文本字段。 (请参见屏幕截图2)
我不知道如何解决此问题,因为我似乎在i < 10
的for循环中正确添加了标签。 System.out.println(array_textfields.get(9))
只是给了我TextField
,断点也是。