目前,我正在使用Android应用,该应用会将偏好设置存储在列表中。当用户在第一次使用后回来时,他们可以选择加载他们之前的选择。但是,当我执行此操作时,循环运行时会有几秒钟的延迟。有没有更好的方法来解决这个问题?
if(stored)
{
CheckBox checkBox;
ViewGroup viewGroup1 = (ViewGroup) findViewById(R.id.rightLayout);
ViewGroup viewGroup2 = (ViewGroup) findViewById(R.id.leftLayout);
String[] preferences = fileReadIn().split(",");
String checkBoxText;
String preferenceText;
for(int i = 0; i < preferences.length; i++)
{
preferenceText = preferences[i].toLowerCase();
for(int c = 0; c < viewGroup1.getChildCount(); c++)
{
checkBox = (CheckBox) viewGroup1.getChildAt(c);
checkBoxText = checkBox.getText().toString().toLowerCase();
if(preferenceText.equals(checkBoxText))
{
checkBox.setChecked(true);
}
}
for(int c = 0; c < viewGroup2.getChildCount(); c++)
{
checkBox = (CheckBox) viewGroup2.getChildAt(c);
checkBoxText = checkBox.getText().toString().toLowerCase();
if(preferenceText.equals(checkBoxText))
{
checkBox.setChecked(true);
}
}
}
}
答案 0 :(得分:0)
无需将首选项存储在文件中。 Android已经提供了一种更简单,更快捷的存储方式。追回他们。请参阅SharedPreferences文档
这是一个小例子,如果你想存储值:
SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
editor.putString("preferences", myString);
editor.apply();
当你想要检索时,只需使用,
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
String myString= prefs.getString("preferences", null);
if (myString != null) {
//do whatever you want with it
}