Как передать данные в действие, предшествующее предыдущему действию

У меня есть три вида деятельности, например. A, B и C. A начало B, и B начало C. Я удалю B из заднего стека в C. Затем мне нужно передать некоторые данные из C в A, прежде чем я закончу C. Мой вопрос заключается в том, как передать данные из С на А?

Ответы на вопрос(5)

Создайте класс и сделайте его классом Singleton. Затем используйте методы setter и getter для установки значения из одного класса и получения значения из другого класса.

public class SingletonObjectDemo {
private String value;
// use setter and getter here...


private static SingletonObject singletonObject;
// Note that the constructor is private
private SingletonObjectDemo() {
    // Optional Code
}
public static SingletonObjectDemo getSingletonObject() {
    if (singletonObject == null) {
        singletonObject = new SingletonObjectDemo();
    }
    return singletonObject;
}

}

 12 июн. 2012 г., 12:01
@Leoguo Если это решило вашу проблему, вы можете пометить этот ответ как Принятый, поэтому он будет полезен для других.
 Lei Guo12 июн. 2012 г., 09:56
Я думаю, что этот ответ может решить мою проблему, но я предпочитаю использовать только функции Android, поэтому я буду использовать BroadcastReceiver. Спасибо за ответ.

попробуй вот так ;;

В деятельности C ..

Intent intent = new Intent(getBaseContext(), A.class);
intent.putExtra("Your_key-ID", value);
startActivity(intent);

В деятельности A ..

Intent sender=getIntent();
String extraData=sender.getExtras().getString("Your_key-ID");

И проверьте эту ссылку

http://mobileorchard.com/android-app-development-using-intents-to-pass-data-and-return-results-between-activities/

 12 июн. 2012 г., 06:03
@ Leoguo Ваша проблема исправлена?
 Lei Guo12 июн. 2012 г., 09:33
Приведенный выше код начнет новое действие A из действия C, я думаю, что это не правильно.

Если вы запускаете Activity по Intent to Go C из A, то вы можете передавать данные через putExtra of intent. Если вы просто перейдете в C, нажав назад, то запишите свои данные в какое-то общее место, например, общие предпочтения, чтобы вы могли получить доступ из A

 Lei Guo12 июн. 2012 г., 09:36
Спасибо за Ваш ответ.

Вы можете использоватьHandler передать данные из одного действия в другое Или вы можете начать каждое действие, используяstartActivityForResult(), Затем с помощьюsetResult(resultCode, data) Вы можете передать дополнительные данные в предыдущее действие, которое можно получить с помощью функцииonActivityResult(int requestCode, int resultCode, Intent data).

 Lei Guo12 июн. 2012 г., 09:38
Этот ответ может решить мою проблему, но мне нужно изменить все эти действия, поэтому я не думаю, что это хорошее решение.
Решение Вопроса

Если вы хотите передать некоторые данные из C в A до завершения действия C, то вы можете использовать широковещательный приемник в своем действии A и напрямую отправлять трансляции из C в A.

Напишите приведенный ниже код перед началом действия B из A. Этот код будет получать данные из действия C.

BroadcastReceiver brd_receiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("receive data from C")) {
            // DO YOUR WORK HERE.
        }

    }
};

registerReceiver(brd_receiver, new IntentFilter("receive data from C"));

Напишите этот код для отправки данных из действия C в действие A.

Intent intent = new Intent();
        intent.setAction("receive data from C");
        intent.putExtra(name, value); //SAVE YOU DATA INTO INTENT.
        sendBroadcast(intent);

Надеюсь, это поможет вам, если это не сработает, тогда скажите мне, с какой проблемой вы столкнулись. Я думаю, что это должно работать.

 Lei Guo12 июн. 2012 г., 09:52
Да, это действительно помогает, спасибо.

Ваш ответ на вопрос