Bundle丢失两个活动之间的所有数据

时间:2018-02-11 16:21:48

标签: java android

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

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 in = getIntent();
    Bundle b = in.getExtras();
    String[] colorSets = (String[]) b.get("colors");
    int[] l = (int[]) b.get("workoutlist");

事实是,当我收到它时,它是空的,显然我无法继续。

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

为什么会这样?是否有我遗漏的东西会产生这个错误?也许两个活动之间有些不相容?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您使用String添加putString()并使用getString()获取Intent in = getIntent(); Bundle b = in.getExtras(); String colorSets = b.getString("colors"); int[] l = b.getIntArray("workoutlist"); 。其他类型也是如此。

php -m