我有一个获取和处理数据的活动,我想启动一个新活动,该活动能够从父活动访问一些变量(复杂的数据结构)。
我不能在这里使用序列化,有没有简单的方法在活动之间传递变量?或者也许访问父活动的功能之一并获取我需要的变量?
我有一个获取和处理数据的活动,我想启动一个新活动,该活动能够从父活动访问一些变量(复杂的数据结构)。
我不能在这里使用序列化,有没有简单的方法在活动之间传递变量?或者也许访问父活动的功能之一并获取我需要的变量?
有没有简单的方法在活动之间传递变量?
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");
}
您可以使用广播接收器在活动之间传递数据,在主活动上创建单例或使用静态 getter/setter 来获取变量。
如果你想传递不可序列化的变量,我仍然认为你的设计有问题。
为此,我们可以使用 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”);