我是初学者,几乎不了解Java和XML。 我正在通过pdf学习它,我正在上网。 我已经了解了Toast,有点关于Intents,但我无法理解Bundles的任何内容。我已经知道它们用于将数据从一个活动传递到另一个活动,但我无法实现这一点。
请举一个简单的例子来实现它。
例如我刚刚创建了两个活动,即Main_Activity和Other_Activity,我还没有对它们做任何事情。
请举出最简单的例子,以便我学会实施。
提前致谢!!
答案 0 :(得分:49)
例如:
在MainActivity中:
Intent intent = new Intent(this, OtherActivity.class);
intent.putExtra(OtherActivity.KEY_EXTRA, yourDataObject);
startActivity(intent);
在OtherActivity中:
public static final String KEY_EXTRA = "com.example.yourapp.KEY_BOOK";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String yourDataObject = null;
if (getIntent().hasExtra(KEY_EXTRA)) {
yourDataObject = getIntent().getStringExtra(KEY_EXTRA);
} else {
throw new IllegalArgumentException("Activity cannot find extras " + KEY_EXTRA);
}
// do stuff
}
此处有更多信息: http://developer.android.com/reference/android/content/Intent.html
答案 1 :(得分:22)
试试这个:如果您需要在活动之间传递值,请使用此...
这是Main_Activity的代码,将值设置为intent
String name="aaaa";
Intent intent=new Intent(Main_Activity.this,Other_Activity.class);
intent.putExtra("name", name);
startActivity(intent);
此Other_Activity的代码,并从意图
获取值 Bundle b = new Bundle();
b = getIntent().getExtras();
String name = b.getString("name");
答案 2 :(得分:6)
基本上这就是你需要做的事:
在第一项活动中:
Intent intent = new Intent();
intent.setAction(this, SecondActivity.class);
intent.putExtra(tag, value);
startActivity(intent);
并在第二次活动中:
Intent intent = getIntent();
intent.getBooleanExtra(tag, defaultValue);
intent.getStringExtra(tag, defaultValue);
intent.getIntegerExtra(tag, defaultValue);
其中一个get函数会返回给你的值,具体取决于你经过的数据类型。