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还有一件事请你告诉我为什么?这两种方法有什么区别?为什么它一次运行良好,但这次失败了?顺便说一句,你很棒!非常感谢。您正在将单个字符串放入捆绑包中,但尝试检索它并将其转换为字符串数组。