2016-01-21 3 views
0

В разделе «Активность детей» мне нужно получить следующий элемент в ListView родительской активности.Получить ссылку на родительскую активность

Нечто подобное ниже должно быть совершенным (не работает, просто Exemple)

ParentActivity parent= (ParentActivity)getCallingActivity(); 
ArrayList yeahIGotReferenceToParentArray = parent.array; 

активность А = ListView с 30 строки.

Когда пользователь Нажмите на строке, он открывает новую активность Б.

С активностью В, У меня есть кнопка «Next», чтобы получить следующий элемент в ListView на деятельность А.

Возможное решение: Я могу использовать намерение, чтобы предоставить полный массив listView, но лучший подход может состоять в том, чтобы получить ссылку на Activity A (из действия B), поэтому я могу получить доступ к значению.

+0

поэтому в чем вопрос sir – Elltz

+0

Как сделать что-то вроде этого: ParentActivity parent = (ParentActivity) getCallingActivity(); ArrayList yeahIGotReferenceToParentArray = parent.array; – Franck

ответ

0

Вы можете передать эти данные, пока вы все еще находитесь в действии A, к активности B посредством намерения. Таким образом, в методе OnClick() вы могли бы сделать что-то вроде ...

Intent i = new Intent(ActivityA.this, ActivityB.class); 
i.putExtra("key", "value"); 
startActivity(i); 
finish(); 

и в ActivityB

Bundle extras = getExtras(); 
if(extras != null){ 
if(extras.containsKey("key")){ 
    //do something based on what the value of the data is 
} 
} 

Я не знаю, если это наиболее эффективный способ сделать это, но это может Работа!

+0

Будет работать, но мне нужно передать полный массив. (любопытство: есть Extra byVal или byRef?) – Franck

+0

Вам не нужно передавать весь массив. Я по вашему методу щелчка вы можете получить положение адаптера и добавить его к нему. Например, я считаю, что это будет выглядеть примерно так. I.putExtra («ключ», getItem (getAdapterPosition() +1); – drew

+0

А также ..... если массив является настраиваемым java-объектом, вы можете сделать этот класс реализуемым сериализуемым, чтобы вы могли передавать его между действиями. – drew

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