-2

有没有办法将新项目添加到这个数组中?

            RowMsg RowMsg_data[] = new RowMsg[] {

                    new RowMsg(R.drawable.ic_launcher, "Message 1"),
                    new RowMsg(R.drawable.ic_launcher, "Message 2"),
                    new RowMsg(R.drawable.ic_launcher, "Message 3"),
                    new RowMsg(R.drawable.ic_launcher, "Message 4")

            };

            // here i want add next one element, for example: RowMsg(R.drawable.ic_launcher, "Message 5")
4

5 回答 5

3

不可以。您不能将元素添加到数组 - 一旦您创建了数组,它的大小就不能改变。

你最好有一个清单:

List<RowMsg> messages = new ArrayList<RowMsg>();
messages.add(new RowMsg(R.drawable.ic_launcher, "Message 1"));
// etc

顺便说一句,将类型信息保存在一个地方更为传统,并且 Java 变量通常采用驼峰式大小写 - 所以即使您确实坚持使用数组,最好将其声明为:

RowMsg[] rowMsgData = new RowMsg[] {
    ...
};

(我还建议避免使用缩写,但我们开始了。)

于 2013-02-12T22:10:23.800 回答
1

如果你真的需要RowMsg_data成为一个数组

RowMsg_data = new ArrayList<RowMsg>(Arrays.asList(RowMsg_data))
               .add(new RowMsg(R.drawable.ic_launcher, "Message 5"))
               .toArray();
于 2013-02-12T22:13:28.353 回答
0

尝试

    RowMsg_data = Arrays.copyOf(RowMsg_data, RowMsg_data.length);
    RowMsg_data[RowMsg_data - 1] = new RowMsg(R.drawable.ic_launcher, "Message 5");
于 2013-02-12T23:56:35.497 回答
0

如果您使用ArrayList,那么您不必重新分配另一个更大的数组并从第一个数组复制,这一切都由ArrayList.

这是. _ArrayList

于 2013-02-12T22:10:10.113 回答
0

初始化后不能更改数组的大小。请改用List例如ArrayList<RowMsg>

于 2013-02-12T22:10:24.103 回答