2015-09-05 2 views
0

В first_activity.java я следующее:Как добавить элемент в Arraylist из другого вида деятельности?

 ArrayList<String> listItems = new ArrayList<String>(); 

Сейчас в second_activity.java я хочу сделать следующее»

public void Method1(View view) { 

    listItems.add("text"); 
    adapter.notifyDataSetChanged(); 

} 

Im пытается использовать строку specif от второй деятельности и добавив его в ArrayList из первого действия, каков правильный способ сделать это?

+0

Простой способ определить ваши 'listItems' как статический, а затем доступ к нему в вашем другом действии как 'fisrt_activity.listItems'. почему адаптер в вашем методе? – Rustam

+0

Извините, что вы пытаетесь достичь, это неправильно! Когда происходит другое действие, старая активность переходит в состояние «пауза». Вызов 'adapter.notifyDataSetChanged()' будет вызывать исключения чаще всего. Данные (Array) должны быть сохранены в другом месте и должны быть повторно назначены адаптеру во время возобновления или 'onCreate' – Panther

+0

@Panther. Поэтому им необходимо создать массив в другом классе, а затем использовать его? Если да, то каков правильный способ редактировать его из другого вида деятельности? Должен ли я объявлять адаптер как внешний метод onCreate, поэтому я могу использовать 'adapter.notifyDataSetChanged()' в 'onCreate' и' onResume'? – Ahmad

ответ

0

не стандартным способом, но дать ему попробовать, в вашей первой деятельности положить,

static ArrayList<String> listItems = new ArrayList<String>(); 

И в вашей второй активности положить,

first_activity.listItems.add("text"); 

Но вы выиграли» t может уведомить ваш адаптер ... Дайте мне знать, если это сработает для вас ...

+0

Спасибо, это сработало, но каков правильный путь или стандартный способ сделать это? – Ahmad

0

Передать новый элемент в действие 1 в результате деятельности 2.

Проверить the documentation

Смежные вопросы