Android中的SharedPreferences节省了ImageView的可见性

时间:2014-10-12 23:00:18

标签: android imageview sharedpreferences

我有一个菜单活动充当关卡选择器。当用户完成一个级别(活动)并返回菜单时,我希望它在菜单中设置一个可见的图像,以显示所述级别已经完成。此外,我希望此信息从会话保存到另一个会话。

我的方法是尝试使用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();

但它不起作用,我真的不知道下一步该做什么。如果帖子不够清楚,请问我任何事情。

1 个答案:

答案 0 :(得分:0)

我认为你的问题是你的加载是一个int,而不是一个数组。我会在这里寻找更好的解释。 Is it possible to add an array or object to SharedPreferences on Android特别是sherifs'答案