1

我有一个获取和处理数据的活动,我想启动一个新活动,该活动能够从父活动访问一些变量(复杂的数据结构)。

我不能在这里使用序列化,有没有简单的方法在活动之间传递变量?或者也许访问父活动的功能之一并获取我需要的变量?

4

3 回答 3

2

有没有简单的方法在活动之间传递变量?

Intent intent = new Intent(context,SecondActivity.class);
intent.putExtra("isLogin", "yes");
startActivity(intent);

在 SecondActivity 中获取价值。

Bundle extras = getIntent().getExtras(); 
if(extras !=null) {
   String value = extras.getString("isLogin");
}
于 2013-03-03T09:42:19.143 回答
0

您可以使用广播接收器在活动之间传递数据,在主活动上创建单例或使用静态 getter/setter 来获取变量。

如果你想传递不可序列化的变量,我仍然认为你的设计有问题。

于 2013-03-03T09:38:23.993 回答
0

为此,我们可以使用 Bundle Class。

在第一个活动(firstactivity.java)中:

//Create the intent
  Intent i = new Intent(firstactivity.this, secondactivity.class);
  EditText txtUserName = (EditText) findViewById(R.id.username);
  String UserName=txtUserName.getText().toString();

  //Create the bundle
  Bundle bundle = new Bundle();
  //Add your data to bundle
  bundle.putString(“UserName”, UserName);  
  //Add the bundle to the intent
  i.putExtras(bundle);

  //Fire that second activity
   startActivity(i);

在第二个活动(secondactivity.java)中:

//Get the bundle
Bundle objBundle = getIntent().getExtras();
//Extract the data
String UserName= objBundle.getString(“UserName”); 
于 2013-03-03T10:51:20.603 回答