1

我有这个代码:

entryData = new Entry[] { 
        new Entry( path1, name1, tag1 ),
        new Entry( path2, name2, tag2 ),
        new Entry( path3, name3, tag3 ),
        new Entry( path4, name4, tag4 )
};

上面的数据为我的列表视图提供了 4 个项目(行)。这很好用。

但是,如果我循环,例如:

for(x=0; x<4; x++){
    entryData = new Entry[] { new Entry( pathx, namex, tagx ) };
}

我的列表视图仅显示一项(行)...

我的课程代码是:

public class Entry {
    public String icon;
    public String title;
    public String tag;

    public Entry() {
        super();
    }

    public Entry(String icon, String title, String tag) {
        super();
        this.icon = icon;
        this.title = title;
        this.tag = tag;
    }
}

有任何想法吗?我又来学习了!蒂亚!!!

4

3 回答 3

2

你错过了 [x],你应该在循环之前初始化数组。它应该看起来像这样:

entry_data = new Entry[4];
for(x=0; x<4; x++){
    entry_data[x] = new Entry( pathx, namex, tagx );
}
于 2012-11-16T07:33:25.247 回答
2

数组必须在循环之前定义。每次迭代应该只向数组添加一个元素:

entryData = new Entry[4];
for (int i = 0; i < 4; i++){
    entryData[i] = new Entry(pathx, namex, tagx);
}

如果您事先不知道数组的大小,那么请改用 List,它会动态增长:

List<Entry> entryData = new ArrayList<Entry>();
// ...
for (int i = 0; i < someDynamicValue; i++) {
    entryData.add(new Entry(pathx, namex, tagx));
}

另外,请尊重 Java 命名约定。

于 2012-11-16T07:33:26.113 回答
1

您可以使用List而不是Array动态案例。ArrayList是它的可调整大小的数组实现。你

List<Entry> entry_data  = new ArrayList<Entry>();
for(x=0; x<4; x++){
    entry_data.add(new Entry( pathx, namex, tagx ));
}

文档中-

每个 ArrayList 实例都有一个容量。容量是用于存储列表中元素的数组的大小。它总是至少与列表大小一样大。随着元素被添加到 ArrayList,它的容量会自动增长。除了添加一个元素具有恒定的摊销时间成本这一事实之外,没有指定增长策略的细节。

于 2012-11-16T07:34:14.070 回答