如何将数据传递到上一个活动之前的活动

时间:2012-06-12 03:42:51

标签: android android-activity

我有三项活动,例如。 A,B和C.开始B,B开始C.我将从C中的后栈中删除B.然后我需要在完成C之前将一些数据从C传递给A.我的问题是如何传递数据C到A?

5 个答案:

答案 0 :(得分:1)

如果您想在完成C活动之前将一些数据从C传递到A,那么您可以在A活动中使用广播接收器,并可以直接从C向A发送广播。

在从A开始活动B之前编写以下代码。此代码将从活动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);

希望它能帮助你,如果它不工作,那么告诉我你面临的问题。我认为它应该有用。

答案 1 :(得分:1)

创建一个类并将其设为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;
}

}

答案 2 :(得分:0)

如果你通过Intent从A开始执行来自A的Go,那么你可以通过意图的putExtra传递数据。如果你只是按回去C然后在一些常见的地方写你的数据,如共享首选项,这样你就可以从A访问

答案 3 :(得分:0)

您可以使用Handler将数据从一个活动传递到另一个活动或者您可以使用startActivityForResult()启动每个活动。然后使用setResult(resultCode, data),您可以将额外数据传递给之前的活动,可以通过函数onActivityResult(int requestCode, int resultCode, Intent data)访问。

答案 4 :(得分:0)

尝试这样;;

在活动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/