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

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");


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

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

为什么会这样呢?我是否缺少某些东西会导致此错误?也许这两个活动之间有些不兼容?

谢谢您的帮助!

最佳答案

您可以使用String添加putString()并使用getString()进行获取。其他类型也一样。

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

10-06 06:43
查看更多