我通过在<activity>
中添加fragment
manifest
来在分离的过程中创建我的Base活动:
android:process=":login_exception_process"
在Base活动中,我启动我的连接对象,然后启动下一个Activitty。但是当我尝试获取连接对象的这些实例时,从另一个Activity中,它们是 NULL
。
Base活动启动的对象保存在static
变量的单独类中。如何访问此变量?
答案 0 :(得分:1)
你必须开始下一个活动,在意图中发送一个额外的活动。
Intent intent = new Intent(this, NextActivity.class);
intent.putextra("keyName","value");
startActivity(intent);
在下一个活动中,您可以通过以下方式检索此值:
String data = getIntent().getExtras().getString("keyName");
Here is the documentation for that.
开始另一项活动不一定是单向的。您还可以启动另一项活动并收到结果。例如,如果您要启动NextActivity
并将值从NextActivity
返回到BaseActivity
,则可以使用startActivityForResult()
。
Here is the documentation for that.
通过意图发送对象可以通过两个选项完成:
伪代码
<强>序列化强>
intent.putExtra("MyClass", your_object);
// to retrieve object in second Activity
getIntent().getSerializableExtra("MyClass");
<强> Parcelable 强>
Intent mIntent = new Intent(this, NextActivity.class);
Bundle mBundle = new Bundle();
mBundle.putParcelable(PAR_KEY, your_object);
mIntent.putExtras(mBundle);
startActivity(mIntent);
尽管可序列化似乎是最简单的选择,但请按照tutorial进行操作,它将教会您两种方式。
希望这会对你有所帮助。
答案 1 :(得分:0)
您应该使用Extras
基本上,在创建你的意图时你必须加上额外的东西:
intent.putExtra("name", "My name is John");
然后当你想在开始下一个活动时取回它时:
this.getIntent().getExtras().getString("name");
如果将Object转换为字节数组,则可以使用任何类型执行此操作。