有没有办法在这个数组中添加新项目?
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")
答案 0 :(得分:3)
没有。您无法向阵列添加元素 - 一旦您创建了阵列,其大小就无法更改。
您最好使用列表:
List<RowMsg> messages = new ArrayList<RowMsg>();
messages.add(new RowMsg(R.drawable.ic_launcher, "Message 1"));
// etc
顺便说一句,将类型信息保存在一个地方更常规,而Java变量通常都是驼峰式的 - 所以即使你确实坚持你的数组,最好将其声明为:
RowMsg[] rowMsgData = new RowMsg[] {
...
};
(我还建议避免缩写,但我们去了。)
答案 1 :(得分:1)
如果 确实 需要RowMsg_data
成为数组
RowMsg_data = new ArrayList<RowMsg>(Arrays.asList(RowMsg_data))
.add(new RowMsg(R.drawable.ic_launcher, "Message 5"))
.toArray();
答案 2 :(得分:0)
如果您使用ArrayList
,那么您不必从第一个数组重新分配另一个更大的数组和副本,这全部由ArrayList
处理。
以下是ArrayList
的{{3}}。
答案 3 :(得分:0)
在初始化后,您无法更改数组的大小。使用List
例如而是ArrayList<RowMsg>
。
答案 4 :(得分:0)
试
RowMsg_data = Arrays.copyOf(RowMsg_data, RowMsg_data.length);
RowMsg_data[RowMsg_data - 1] = new RowMsg(R.drawable.ic_launcher, "Message 5");