2013-02-12 37 views
-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") 

回答

0

如果使用ArrayList,那麼你就不必重新分配的另一大的陣列,並從你的第一陣列複製,即全部由ArrayList處理。

這是documentationArrayList

3

不可以。您不能將元素添加到數組中 - 創建數組後,其大小不能更改。

你會用一個列表更好:

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

順便說一句,這是更傳統的,以保持類型的信息都在一個地方,和Java的變量是傳統的駱駝套管 - 所以即使你堅持自己的陣列,倒不如將其聲明爲:

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

(我也建議避免縮寫,但我們去)

0

初始化後不能更改數組的大小。例如使用List改爲ArrayList<RowMsg>

1

如果你真的需要RowMsg_data是一個陣列

RowMsg_data = new ArrayList<RowMsg>(Arrays.asList(RowMsg_data)) 
       .add(new RowMsg(R.drawable.ic_launcher, "Message 5")) 
       .toArray(); 
0

嘗試

RowMsg_data = Arrays.copyOf(RowMsg_data, RowMsg_data.length); 
    RowMsg_data[RowMsg_data - 1] = new RowMsg(R.drawable.ic_launcher, "Message 5");