访问父活动的实例?

假设我有一个类first.java(activity class),我开始在这个类中的另一个活动(second.java – 活动类)。 我如何从second.java访问first.java的实例? 有人可以给我一个很好的解释..一个例子将是伟大的…

Solutions Collecting From Web of "访问父活动的实例?"

如果您需要第二个活动来将一些数据返回到您的第一个活动,我build议您使用startActivityForResult()来开始第二个活动。 然后在第一个activity中的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(); 

如果您不希望在第一个活动中完成某些工作之前等待第二个活动结束,则可以发送第一个活动所反应的广播。

编辑:

如果您需要访问First活动中的某些值而不进行静态引用,则可以考虑将您的活动放在ActivityGroup中。

所以,ActivityGroup启动第一个活动。 然后第一个活动使用ActivityGroup来启动第二个活动。 然后,您将通过调用第二个活动中的getParent()来访问第一个活动。

 class MyActivityGroup extends ActivityGroup { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); startChildActivity("first", new Intent(this, First.class)); } public void startChildActivity(Intent intent) { Window window = getLocalActivityManager().startActivity(id, intent); if (window != null) { setContentView(window.getDecorView()); } } } 

在First.class中:

 Intent = new Intent(this, Second.class); ((MyActivityGroup) getParent()).startChildActivity("second", intent); 

在第二类:

 Activity first = (First) getParent(); 

您可以简单地从子活动中调用getParent()

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

只有这应该工作

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

first.instance是可以从第二个类访问的必需的东西

您无法直接创build活动。 在第一个活动中,像这样做一个静态活动variables,

 public static Activity activity; 

在onCreate做到这一点。

 activity = this; 

然后在第二个活动中做到这一点,

 Activity activity = (your activity name).activity; 

编辑:将数据从一个活动传递给其他活动,这不是方法。 上面的答案是从最初被问到的其他活动中得到活动实例。

将数据从一个活动传递给其他活动一般使用捆绑。 但是,如果数据不是原始数据types,则使用应该实现parcelable或serializable接口的对象类。 然后通过捆绑只能可见的对象列表,我们可以通过。

试试这个,如果这个工作4你………
像这样的东西…..

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

}

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

你也可以直接使用静态的方式来访问实例,就像这样first.instance …….
谢谢…