当前位置: 首页 > 知识库问答 >
问题:

捆绑包在两个活动之间丢失所有数据

微生学
2023-03-14

我有两个不同的活动菜单和练习。当我通过单击按钮开始后一个活动时,我需要将一些数据从菜单传递给练习。这是菜单活动中的代码:

Button b = (Button) findViewById(R.id.temp);
    b.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v){
            Intent i = new Intent(context, ExerciseActivity.class);
            Bundle b = new Bundle();
            b.putString("colors","Blue");
            b.putIntArray("workoutlist",new int[] {0,1});
            i.putExtras(b);
            //i.putExtra("workoutlist",MyApp.workoutList.get(0));
            //i.putExtra("colors","Blue");
            startActivity(i);
        }
    });

使用调试工具,我检查了所有数据是否正确地位于intent包中。下面是从练习活动中的意图中检索数据的代码:

    Intent in = getIntent();
    Bundle b = in.getExtras();
    String[] colorSets = (String[]) b.get("colors");
    int[] l = (int[]) b.get("workoutlist");

事实上,当我得到这个包时,它是空的,显然我无法继续。

此外,我已经在其他活动之间使用了几乎相同的代码,一切正常。

为什么会发生这种情况?是不是我错过了什么导致了这个错误?也许这两个活动之间有些不兼容?

谢谢你的帮助!

共有1个答案

蓬意致
2023-03-14

您可以使用putString()添加字符串,并使用getString()获取它。其他类型也一样。

Intent in = getIntent();
        Bundle b = in.getExtras();
        String colorSets =  b.getString("colors");
        int[] l =  b.getIntArray("workoutlist");
 类似资料:
  • 假设你有两个活动-A和B,你从A开始B。在B中,你有一个任务。如果任务完成,您希望返回到按下when back键,如果没有,您希望取消整个应用程序。但在解除后,你可以从最近的应用程序菜单中恢复B。如果在那之后你需要同样的后退键的行为。 因此,我想放弃一个活动或整个应用程序(但简历的可能性)。有什么办法可以做到这一点吗?

  • 我已经用声明性服务(DS)组件定义定义了一个OSGi包(),指定了一个导出的服务、一个激活方法和一个停用方法。 在Activate方法的主体中,我需要访问一个文件,该文件不在文件系统中,但绑定在OSGi捆绑包中。在activate方法期间,使用。 这基本上是可行的,但有一种情况是不可行的。在我的应用程序中,

  • 问题内容: 我目前正在尝试获取通过REST API调用获取的数据,将其解析为所需的信息,然后将该信息传递给新活动。我使用的是异步HTTP客户端从loopj.com为REST客户端,然后使用我下面的代码,并为当前和未来的活动,分别。 Eclipse不会为我的任何代码传递任何错误,但是当我尝试在模拟器中运行时,当新的活动/视图打开时,我什么也没得到(即白屏)。我尝试在REST CLIENT中使用其他U

  • 背景: 有两项活动 1x(主活动),1x(子活动-具有列表视图的活动) 主活动扩展了碎片活动,信息将在碎片中使用 单击主活动的菜单项时,子活动将打开 为ListView使用HashMap 我的目标: 单击项的HashMap值应发送回主活动,子活动(带有ListView)应关闭 问题: 我认为我犯了一个巨大的错误,但我无法解决它。 从onOptionsItemSelected和onActivityR

  • 我试图将一个活动(LensActivity)中的ArrayList中的值传递给我的主活动上的TextView。在这个网站上,我找到了Intent方法并进行了实验,但似乎无法传递它,信息被提取到字符串lensString中,并传递到Intent,但在主活动中似乎没有传递或获取TextView,在一些实验中,由于getIntent在主活动中,我得到了一个空指针。 这是LensActivity的代码,它

  • 我试图在我的android应用程序中的两个活动之间传递数据,我想使用HashMap(我不想使用Intent)。以下是我的代码: DataHolder.java 在第一个活动中设置值 在其他活动中获得价值 当我用它在activity1到activity2之间传递数据时,它会起作用,但在那之后,当在activity2到activity3之间传递数据时,返回null,因此强制转换为(整数)会导致错误。在