在android中将数据从一个页面移动到另一个页面的问题

时间:2011-03-27 15:50:39

标签: java android android-intent

嗨,在我的应用程序中,我有三个名为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);
    }
}

我为两者都设置了单独的文本视图。

请解释一下我的错误是什么......

3 个答案:

答案 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?

的答案