按钮列表列表为空

时间:2013-11-26 01:12:17

标签: java list gwt

我正在研究GWT。

由于我有一个SQL数据库并且我的查询结果集大小未知,我认为使用列表是有意义的。

实际上我有一个按钮列表和第二个按钮列表列表。

原因是因为我有一个存储组的表和一个存储实际数据的表。结果中的两个都应该是按钮。

通过单击组按钮,我的布局将填充组按钮之间的数据按钮。

现在我的数据库连接还没有准备好使用,所以我编写了一个用假数据填充我的列表的函数。同组也是如此。

public void fakeGroupData () {
// Group index 0
    btnGroupList.add(new Button("Group a"));
// Group index 1
    btnGroupList.add(new Button("Group b"));
    ...
}

public void fakeData () {

// Group index 0
    btnDataList.add(new Button("Data 1.1"));
    btnDataList.add(new Button("Data 1.2"));
    btnDataList.add(new Button("Data 1.3"));
    btnDataListList.add(btnDataList);
    btnDataList.clear();

// Group index 1
    btnDataList.add(...
}

宣言看起来像这样

List<Button> btnGroupList = new ArrayList<Button>();
List<List<Button>> btnDataListList = new ArrayList<List<Button>>();
List<Button> btnDataList = new ArrayList<Button>();

当尝试获取ListList的ButtonList时,会出现错误。

    int grpIndex = Panel.getWidgetIndex(grpBtn);
// grpBtn is equal to (Button)event.getSource() called by btnGroup ClickHandler
    btnDataList.clear()
    btnDataList = btnDataListList.get(grpIndex);
    int loopEnd = btnDataList.size() - 1;

    for (int i = 0; i<=loopEnd; i++) {...

“loopEnd”包含“-1”并且没有任何反应:(。我试图在这里调试,一切似乎都没问题。 “grpIndex”具有正确的索引,因此加载了正确的列表。 但为什么它是空的?调试时,fakeData函数eclipse在ButtonList中显示正确的大小。

希望你能帮助我:)。

1 个答案:

答案 0 :(得分:1)

btnDataList.clear();将清空您引用的列表对象。

对于每个Group索引,您需要一个新列表。喜欢这个

btnDataList = new ArrayList<Button>();代替btnDataList.clear();

// Group index 0
btnDataList.add(new Button("Data 1.1"));
btnDataList.add(new Button("Data 1.2"));
btnDataListList.add(btnDataList);

// Group index 1
btnDataList = new ArrayList<Button>();
btnDataList.add(new Button("Data 2.1"));
btnDataList.add(new Button("Data 2.2"));
btnDataListList.add(btnDataList);