我有一个菜单活动充当关卡选择器。当用户完成一个级别(活动)并返回菜单时,我希望它在菜单中设置一个可见的图像,以显示所述级别已经完成。此外,我希望此信息从会话保存到另一个会话。
我的方法是尝试使用SharedPreferences。这是写入save的级别活动的代码:
private int levelNumber
SharedPreferences save = getSharedPreferences("SaveGame", MODE_PRIVATE);
SharedPreferences.Editor editor = save.edit();
editor.putInt("levelComplete",levelNumber);
editor.commit();
GameActivity.this.finish();
这是菜单中的相关代码,用于读取保存并根据levelNumber设置图像可见:
clear_stage = new ImageView[clear];
clear_stage[0] = (ImageView)findViewById(R.id.clear1);
clear_stage[1] = (ImageView)findViewById(R.id.clear2);
clear_stage[2] = (ImageView)findViewById(R.id.clear3);
clear_stage[3] = (ImageView)findViewById(R.id.clear4);
clear_stage[4] = (ImageView)findViewById(R.id.clear5);
SharedPreferences save = getApplicationContext().getSharedPreferences("SaveGame", MODE_PRIVATE);
clear = save.getInt("levelComplete", 0);
clear_stage[clear].setVisibility(View.VISIBLE);
我的知名度已设置为"已消失"顺便说一句,在xml中。
现在,我的主要问题是,每次完成一个关卡时,可见图像会发生变化,最后一个图像会再次变为不可见(被覆盖)。 有没有办法在每次完成一个级别时存储清除值?
我尝试过:
SharedPreferences saveall = getSharedPreferences("SaveGame", MODE_PRIVATE);
SharedPreferences.Editor editor = saveall.edit();
editor.putInt("clear_stage",clear);
editor.commit();
但它不起作用,我真的不知道下一步该做什么。如果帖子不够清楚,请问我任何事情。
答案 0 :(得分:0)
我认为你的问题是你的加载是一个int,而不是一个数组。我会在这里寻找更好的解释。 Is it possible to add an array or object to SharedPreferences on Android特别是sherifs'答案