我有两个不同的活动菜单和锻炼。
当我通过单击按钮开始后一个活动时,需要将某些数据从菜单传递给运动。
这是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");