2015-03-09 3 views
1

активность, есть ListView и Button.Android, Получить результат от третьей деятельности

Когда я нажимаю кнопку, начинается секунд деятельность, которая имеет ListView категорий.

После того, как я нажму на один из элементов списка, он запустит третий активность, которая имеет ListView с элементами, принадлежащими моей выбранной категории.

Когда я выбираю элемент третьегоListView он должен отправить меня обратно в первую деятельности, где мой выбранный элемент будет добавлен к моему пустому ListView

+0

Почему вы не используете фрагменты для таких случаев использования? – jonDoe

+0

В некоторых приложениях для iPhones некоторые операции делятся на шаги, которые переключают экраны и переключаются на первый экран, чтобы показать результат. – zxcdsa980

+0

Даже фрагменты могут быть опущены – jonDoe

ответ

1

Хотя я вас умоляю, чтобы изменить дизайн архитектуры, можно сделать это следующим образом:

ActivityOne.java Файл ActivityT

... 
startActivityForResult(new Intent(this, ActivityTwo.class), 2); 
... 
@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if(resultCode == RESULT_OK && data != null) { 
     //Collect extras from the 'data' object 
    } 
} 
... 

файла wo.java

... 
startActivityForResult(new Intent(this, ActivityTwo.class), 3); 
... 
@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if(resultCode == RESULT_OK && data != null) { 
     setResult(resultCode, data); 
     finish(); 
    } 
    setResult(RESULT_CANCELLED); 
} 
... 

Файл ActivityThree.java

... 
//Fill the Intent resultData with the data you need in the first activity 
setResult(RESULT_OK, resultData); 
finish(); 
... 
10

Использование Intent.FLAG_ACTIVITY_FORWARD_RESULT так:


FirstActivitySecondActivity должен начать с использованием startActivityForResult().

SecondActivity должны начать ThirdActivity с помощью этого:

Intent intent = new Intent(this, ThirdActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); 
startActivity(intent); 
finish(); 

Это говорит ThirdActivity, что он должен возвращать результат FirstActivity.

ThirdActivity должен возвращать результат, используя

setResult(RESULT_OK, data); 
finish(); 

В тот момент, FirstActivity.onActivityResult() будет вызываться с данными, возвращенными из ThirdActivity.

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