访问父活动的实例?

时间:2011-02-09 12:10:51

标签: android

假设我有一个类first.java(活动类),我在这个类中启动另一个活动(second.java - activity class)。如何从second.java访问first.java的实例?有人可以给我一个很好的解释..一个例子会很棒...

5 个答案:

答案 0 :(得分:41)

如果您需要第二个活动将某些数据返回到第一个活动,我建议您使用startActivityForResult()来启动第二个活动。然后在第一个活动中的onResult()中,您可以完成所需的工作。

在First.java中你启动Second.java:

Intent intent = new Intent(this, Second.class);
int requestCode = 1; // Or some number you choose
startActivityForResult(intent, requestCode);

结果方法:

protected void onActivityResult (int requestCode, int resultCode, Intent data) {
  // Collect data from the intent and use it
  String value = data.getString("someValue");
}

在Second.java中:

Intent intent = new Intent();
intent.putExtra("someValue", "data");
setResult(RESULT_OK, intent);
finish();

如果你不想在第一个活动中做一些工作之前等待第二个活动结束,你可以发送第一个活动作出反应的广播。

答案 1 :(得分:7)

您只需从儿童活动中拨打getParent()即可。

我不知道为什么其他答案如此复杂。

答案 2 :(得分:2)

只有这应该起作用

class first
{
    public static first instance;
    oncreate()
    {
        instance = this;
    }
}

first.instance是可从第二类

访问的必需事物

答案 3 :(得分:-2)

尝试这个,如果这项工作4你......... 像这样......

class first
{
public static first instance;
oncreate()
{
instance=this;
}

public static getInstance()
{
return instance;
}

}

现在从第二类调用first.getInstance();

你也可以像第一个实例那样以静态的方式直接访问实例。实例.......
感谢...

答案 4 :(得分:-3)

您无法直接创建活动。     在第一个活动中采用这样的静态活动变量

public static Activity activity;

在onCreate中执行此操作。

activity = this;

然后在第二个活动中执行此操作,

Activity activity = (your activity name).activity;

修改 为了将数据从一个活动传递到其他活动,这不是方法。 上面的答案是从最初被问到的其他活动中获取活动实例。

要将数据从一个活动传递到其他活动,通常使用捆绑包。但是如果数据不是原始数据类型,那么使用应该实现parcelable或serializable接口的对象类。然后通过bundle只能传递我们可以传递的对象列表。