2013-02-12 2 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.

Вот documentation для ArrayList.

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"); 
Смежные вопросы