【发布时间】:2011-04-20 16:42:45
【问题描述】:
我使用 SharedPreference 来存储复选框的状态,但即使我在其中存储 true,它仍然检索 false。
这是我的代码 -
@Override
public void onPause()
{
super.onPause();
saveState();
}
@Override
public void onResume()
{
super.onResume();
loadState();
}
@Override
public void onRestart()
{
super.onRestart();
loadState();
}
public void saveState()
{
SharedPreferences sp = getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
for(int i = 0; i < itemCheck.length; i++)
{
Boolean b = itemCheck[i];
Log.e(TAG, b.toString());
editor.putBoolean(i+"", itemCheck[i]);
}
}
public void loadState()
{
SharedPreferences sp = getPreferences(Context.MODE_PRIVATE);
for(int i = 0; i < itemCheck.length; i++)
{
itemCheck[i] = sp.getBoolean(i+"", false);
Boolean b = itemCheck[i];
Log.e(TAG, b.toString());
}
for(int i = 0; i < itemCheck.length; i++)
{
lv.setItemChecked(i, itemCheck[i]);
}
}
它给了我 false 因为我在 getBoolean 中将 false 设置为默认值,在没有预定义键的情况下应该返回该值。请看看并告诉我我做错了什么。谢谢
【问题讨论】:
标签: android checkbox state sharedpreferences