我通过添加到它的 <activity>
在单独的进程中创建了我的 Base Activity fragment
在manifest
:
android:process=":login_exception_process"
在基本 Activity 中,我启动我的连接对象,并开始下一个 Activity 。但是当我尝试从另一个 Activity 中获取连接对象的实例时,它们是 NULL
强>。
Base Activity 启动的对象保存在static
中的单独类中变量。我怎样才能访问这个变量?
最佳答案
将值传递给另一个 Activity
您必须开始您的下一个 Activity,在 Intent 中发送额外的内容。
Intent intent = new Intent(this, NextActivity.class);
intent.putextra("keyName","value");
startActivity(intent);
你的下一个 Activity ,你可以通过这样做来检索这个值:
String data = getIntent().getExtras().getString("keyName");
Here is the documentation for that.
从 Activity 中获取结果
开始另一项 Activity 不一定是单向的。您还可以开始另一项 Activity 并收到返回的结果。例如,如果您想要启动 NextActivity
并将值从 NextActivity
返回到 BaseActivity
,您可以使用 startActivityForResult()
。
Here is the documentation for that.
更新
通过 intent 发送对象可以通过两种方式完成:
伪代码
可序列化
intent.putExtra("MyClass", your_object);
// to retrieve object in second Activity
getIntent().getSerializableExtra("MyClass");
可打包
Intent mIntent = new Intent(this, NextActivity.class);
Bundle mBundle = new Bundle();
mBundle.putParcelable(PAR_KEY, your_object);
mIntent.putExtras(mBundle);
startActivity(mIntent);
尽管 Serializable 似乎是最简单的选择,请遵循此 tutorial它会教你两种方法。
希望对你有帮助。
关于java - 在具有不同流程的两个 Activity 之间使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23085750/