嗨,在我的应用程序中,我有三个名为A,B和C的活动。我正在获取一些数据,如活动A中的名称和活动B中的出生日期。现在在活动C中,我希望显示这些名称和日期诞生。我尝试使用以下链接中的步骤
how to move data's from one page to the other in Android
我可以将活动B中的数据移动到C,但是活动A中存储的数据不可见
以下是我在活动A中放置的代码
Intent myIntent = new Intent(getBaseContext(), UserInformation.class);
myIntent.putExtra("i1", name);
myIntent.putExtra("i2", addlress);
startActivityForResult(myIntent, 0);
以下是我在活动B中使用的代码
Intent myIntent = new Intent(getBaseContext(), UserManual.class);
myIntent.putExtra("i3", regno);
myIntent.putExtra("i4", dob);
startActivityForResult(myIntent, 0);
以下是我在活动C中使用的代码
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);`
Bundle extras = getIntent().getExtras();
String i1 = extras.getString( "i1" );
String i2 = extras.getString( "i2" );
String i3 = extras.getString( "i3" );
String i4 = extras.getString( "i4" );
if((i1 != null) && (i2 != null))
{
s = i1 + i2;
extras.putCharSequence("S", s);
}
if((i3 != null) && (i4 != null))
{
b = i3 + i4;
extras.putCharSequence("B", b);
}
}
我为两者都设置了单独的文本视图。
请解释一下我的错误是什么......
答案 0 :(得分:1)
步骤1:摆脱getBaseContext()
。只需使用this
。
步骤2:C不会神奇地获取用于启动B的Intent
上的额外内容,只不过网页C会神奇地获取附加到用于启动的URL的GET
参数第B页.B必须将所有附加内容放在它使用Intent
的{{1}}上,以便C能够读取它们。
答案 1 :(得分:1)
好吧,让我们想象一下案例如下:A-> B-> C.现在的代码: 活动B:
Bundles extras = getIntent().getExtras();
String i1 = extras.getString( "i1" );
String i2 = extras.getString( "i2" );
Intent myIntent = new Intent(getBaseContext(), UserManual.class);
myIntent.putExtra("i1", i1);
myIntent.putExtra("i2", i2);
myIntent.putExtra("i3", regno);
myIntent.putExtra("i4", dob);
startActivityForResult(myIntent, 0);
所以活动A将值传递给活动B,然后活动B将所有值传递给活动C:)
答案 2 :(得分:0)
如何使用应用程序上下文将数据存储为全局变量?喜欢How to declare global variables in Android?
的答案