Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
#1

передача результата в onActivityResult - Android

10.10.2013, 22:28. Просмотров 816. Ответов 4
Метки нет (Все метки)

Скажи пожалуйста.

У меня есть 3 активити. Из первой активити я вызываю активность номер2 с помощью старт АктивитиФоРезалт. В свою очередь 2 активность после выполнения всех действий запускает 3 активность и сама 2 активность закрывается с помощью finish(). После того когда я закрою 3 активность, мне необходимо чтобы онАктивити резалт в первой активити получил значение OK, но он их не получает, а получает CANCEL.

Как передать результа RESULT_OK из 3 активити в первую.???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2013, 22:28     передача результата в onActivityResult
Посмотрите здесь:

Android onActivityResult для Fragment
Android Незаметный перехват результата USSD запроса
Android OnActivityResult For Fragment
Android Вывод результата на EditText
Android Вывод результата с TextView / Andoid
OnActivityResult и FragmentActivity Android
Android OnActivityResult из сервис во фрагмент
Ввод исходных данных и вывод результата расчета Android
OnActivityResult Android
Android Обработка результата POST-запроса в Android
Android OnActivityResult() внутри Dialog
Android Два onActivityResult в одной Activity

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.10.2013, 22:50     передача результата в onActivityResult #2
Java
1
setResult(RESULT_OK);
возвращает Result той активити, которая ее вызвала.
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
10.10.2013, 23:24  [ТС]     передача результата в onActivityResult #3
я использую:
Java
1
2
Intent intent = new Intent();
setResult(RESULT_OK, intent);
и это не работает!

а вы предлагаете сделать:
Java
1
2
Intent intent = new Intent();
setResult(RESULT_OK);
т.е. убрать слово intent, правильно я Вас понял?
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
11.10.2013, 00:04     передача результата в onActivityResult #4
Пересмотрите архитектуру приложения, если, конечно, она вообще есть.

ActivityOne
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class ActivityOne extends Activity {
    
    public static final int REQUEST_CODE = 666;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        startActivityForResult(new Intent(this, ActivityTwo.class), REQUEST_CODE);
    }
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == REQUEST_CODE) {
            Log.d("ActivityOne", data.getStringExtra("ActivityName") + "");
        }
    }
}


ActivityTwo
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class ActivityTwo extends Activity {
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        startActivityForResult(new Intent(this, ActivityThree.class), ActivityOne.REQUEST_CODE);
    }
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == ActivityOne.REQUEST_CODE) {
            setResult(resultCode, data);
            finish();
        }
    }
 
}


ActivityThree
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
public class ActivityThree  extends Activity {
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Intent i = getIntent();
        i.putExtra("ActivityName", ActivityThree.class.getName());
        setResult(RESULT_OK, i);
        finish();
    }
 
}
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.10.2013, 00:35     передача результата в onActivityResult #5
Цитата Сообщение от Stylish2013 Посмотреть сообщение
т.е. убрать слово intent, правильно я Вас понял?
т.е. передавать по цепочке как Netscape или пересмотреть архитектуру приложения.
Yandex
Объявления
11.10.2013, 00:35     передача результата в onActivityResult
Ответ Создать тему
Опции темы

Текущее время: 11:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru