假设我有一个类first.java(活动类),我在这个类中启动另一个活动(second.java - activity class)。如何从second.java访问first.java的实例?有人可以给我一个很好的解释..一个例子会很棒...
答案 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只能传递我们可以传递的对象列表。