如何从另一个bundle构造的Bundle中检索数据?

时间:2014-05-22 09:00:40

标签: android android-intent bundle

如下面的代码中所示,我正在创建一个由另一个包构建的新包meetingPointFixBundle,该包将由getAddNewLocationBundle

返回

在我的代码中某处我想

(1)解压缩包meetingPointFixBundle并检索我明确添加到其中的所有值

(2)获取包getAddNewLocationBundle中包含的值。

实际上,我知道如何处理问题的第一部分,它将使用meetingPointFixBundle = getIntent().getExtras()完成。但我不知道如何通过getAddNewLocationBundle检索包meetingPointFixBundle中包含的值?

有什么建议吗?

更新/进一步说明

starterActivityBundle有三个键[LOC_NAME_KEY,IMG_TITLE_KEY,IMG_PATH_KEY]。 而且,在Current活动中,我正在创建自己的包getMeetingPointFixBundle,它最初是使用starterActivityBundle构建的。稍后在代码中,我将向当前活动包getMeetingPointFixBundle添加额外的两个键 - [LOC_LAT_KEY,LOC_LNG_KEY]。因此,getMeetingPointFixBundle的最终格式将如下getMeetingPointFixBundle[starterActivityBundle, LOC_LAT_KEY, LOC_LNG_KEY]

之后,我将开始一项新的活动" InfoActivity"填充intent的{​​{1}}。从内部" InfoActivity"我想解压缩getMeetingPointFixBundle并检索getMeetingPointFixBundle

StarterActivitybundle:

[starterActivityBundle (LOC_NAME_KEY, IMG_TITLE_KEY, IMG_PATH_KEY), getMeetingPointFixBundle (LOC_LAT_KEY, LOC_LNG_KEY) ]

getMeetingPointFixBundle:

private Bundle getTheStarterActivityBundle() {
    // TODO Auto-generated method stub

    this.addNewLocationBundle = new Bundle();
    this.addNewLocationBundle = getIntent().getExtras();
    return this.addNewLocationBundle;
}

1 个答案:

答案 0 :(得分:0)

我无法理解你的问题,但我会考虑一下我认为你想要实现的目标。

据我所知,你正试图从特定的Bundle获取额外内容。问题是,你将它们“合并”在一起。以下内容可能有所帮助:

protected Bundle getMeetingPointFixBundle() {
  final Bundle newLocationBundle = getAddNewLocationBundle();
  final Bundle meetingPointFixBundle = new Bundle();
  meetingPointFixBundle.putBundle("locationBundle", newLocationBundle); 
  return meetingPointFixBundle;
}

然后,要获得(1),您可以使用您的方法,但忽略" locationBundle"额外的费用。

对于(2),您可以致电getIntent().getBundleExtra("locationBundle")访问newLocationBundle个额外内容。

更新

  

从内部" InfoActivity"我想打开包装   getMeetingPointFixBundle并检索[starterActivityBundle   (LOC_NAME_KEY,IMG_TITLE_KEY,IMG_PATH_KEY),getMeetingPointFixBundle   (LOC_LAT_KEY,LOC_LNG_KEY)]

同样,我对你使用的解释和语法感到有点困惑。我假设X = [Y(Z)]表示Bundle X包含来自Bundle Y的额外值Z。

  

因此,getMeetingPointFixBundle的最终格式如下所示   getMeetingPointFixBundle [starterActivityBundle,LOC_LAT_KEY,   LOC_LNG_KEY。之后,我将开始一项新的活动" InfoActivity"通过   使用getMeetingPointFixBundle填充的意图

在问题中定义时使用getMeetingPointFixBundle()并牢记getMeetingPointFixBundle的最终格式,InfoActivity中的Bundle应包含以下内容:{{1 }}。然后,提取数据就像调用适当的Bundle getter方法一样简单。

如果这不是你要找的东西,那么我道歉,但我不明白你在问什么。