Android:为新活动添加多个Bundle

时间:2015-03-16 20:44:49

标签: android

我试图将两个单独的信息传递到我的Android应用程序中的新活动。 我目前有这个:

Bundle dataBundle = new Bundle();
Bundle extras = getIntent().getExtras(); // student id
dataBundle.putInt("id", 0);// lesson id
Intent intent = new Intent(getApplicationContext(),com.example.ltss.dyslexia.app.LessonNotes.class);
intent.putExtras(dataBundle);
intent.putExtras(extras);
startActivity(intent);

然后我获得了访问此信息的代码。但是,添加第二个包会覆盖第一个包。

Bundle extras = getIntent().getExtras();
Bundle studentId = getIntent().getExtras();
Log.d("LessonID: ", String.valueOf(extras));
Log.d("StudentID: ", String.valueOf(studentId));

我需要单独传递信息,因为我需要检查其中一个是否为空。

可以问我要做什么?关于如何做到这一点的任何想法?或者另一种方法呢? (解析可能?)

由于

2 个答案:

答案 0 :(得分:6)

您可以使用putExtra("bundle1", bundle1)putExtra("bundle2", bundle2),然后使用getIntent().getBundleExtra("bundle1");getIntent().getBundleExtra("bundle2");来检索两者

答案 1 :(得分:2)

也许你在想这个。您可以将大量信息放在一个包中。

Bundle bundle = new Bundle();
bundle.putString("studentid", "Student0983");
bundle.putInt("lessonid", 0);
bundle.putString("moreinfo", "needed some extra data on that student");
bundle.putInt("studentincome", 4250);
Intent intent = new Intent(getApplicationContext(),com.example.ltss.dyslexia.app.LessonNotes.class);
intent.putExtras(bundle);
startActivity(intent);

现在在新活动中获取该数据

Bundle bundle = getIntent().getExtras();
Log.d("studentid: ", bundle.getString("studentid"));
Log.d("lessonid: ", bundle.getInt("lessonid"));
Log.d("moreinfo: ", bundle.getString("moreinfo"));
Log.d("studentincome: ", bundle.getInt("studentincome"));