如何在Android中将变量传递到另一个活动?

3

我在主活动中有两个变量,我需要将这些变量的值传递到下一个活动。怎样可以实现呢?

   button.Click += delegate {
   var activity2 = new Intent (this, typeof(Activity2));
   activity2.PutExtra ("MyData", "Data from Activity1");
   StartActivity (activity2);
};

这两个变量的类型是什么? 您可以使用Intent.putExtra()发送任意数量的变量,并通过Intent.getExtra()在新活动的onCreate()中获取它们。 - Ajay
5
可能是如何在Android应用程序的活动之间传递数据?的重复问题。 - Kevin Krumwiede
5个回答

5
创建一个Intent对象并通过putString()或putExtra()方法发送数据。
 Intent intent = new Intent(this, YourClass.class);
 intent.putString("key1", var1);// if its string type
 Intent.putExtra("key2", var2);// if its int type
 startActivity(intent);

在接收端
Intent intent = getIntent();
String var1 = intent.getStringExtra("key1");
int i = var2.getIntExtra("key2", 0);

1

使用以下方法将数据从MainActivity发送到Activity2

Intent activity2 = new Intent(MainActivity.this, Activity2.class);
activity2.PutExtra("MyData", "Data from Activity1");
StartActivity(activity2);

使用以下方式在 Activity2 中接收数据:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ..............
    ..................

    if( getIntent().getExtras() != null)
    {
        String myData = getIntent().getStringExtra("MyData");
    }

    ...............
    .....................
}

1

FirstActivity

Intent intent = new Intent(this, Example.class); 
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
intent.putExtras(mBundle);
startActivity(intent);

SecondACtivity

String value = getIntent().getStringExtra(key);

0

你也可以将你的值作为 bundle 传递

FirstActivity.java

Intent mIntent = new Intent(this, Example.class); 
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);
startActivity(mIntent )

SecondActivity.java

String value = getIntent().getExtras().getString(key)

Bundle 对于所有基本类型、可包含的对象和可序列化对象都有 "get" 和 "put" 方法。我只是为了演示目的使用了字符串。

我认为这会对你有所帮助。


-1
你可以使用静态变量来实现这个。

MainActivity.java

public static String nameVariable= "Text";

SecondActivity.java

String textFromMainActivity = MainActivity.nameVariable; 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接