Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 捆绑包在两个活动之间丢失所有数据_Java_Android - Fatal编程技术网

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

Java 捆绑包在两个活动之间丢失所有数据,java,android,Java,Android,我有两种不同的活动菜单和练习。 当我通过点击按钮开始后一项活动时,我需要从菜单中传递一些数据以进行练习。 以下是菜单活动中的代码: Button b = (Button) findViewById(R.id.temp); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v){ Intent i = new Int

我有两种不同的活动菜单和练习。 当我通过点击按钮开始后一项活动时,我需要从菜单中传递一些数据以进行练习。 以下是菜单活动中的代码:

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");
事实上,当我得到这个包时,它是空的,显然我无法继续

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

为什么会这样?是不是我遗漏了什么导致了这个错误?也许这两种活动之间有一些不相容的地方


谢谢你的帮助

使用
putString()
添加
String
,并使用
getString()
获取它。其他类型也一样

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

如果您建议删除不起作用的强制转换运算符,因为它会给我一个错误,因为无法将对象分配给字符串数组,我使用的方法与您使用的方法不同。将我的答案与您的代码进行比较:您正在使用
get()
。我的答案使用
getString()
getIntArray()
进行说明,您明白了吗?哦,对不起,对不起,我没有注意到这一点。我刚试过,真的很管用,太棒了,非常感谢你!!:D还有一件事请你告诉我为什么?这两种方法有什么区别?为什么它一次运行良好,但这次失败了?顺便说一句,你很棒!非常感谢。您正在将单个字符串放入捆绑包中,但尝试检索它并将其转换为字符串数组。