我的代码中有一个静态数组,我正在尝试记住对它们的检查(一次只检查1个)。说我有项目1,2,3和4和3被选中(1 2 4将被取消选中)如果我点击完成按钮并返回到视图稍后我想看到从上次检查3。有没有办法可以做到这一点? 这是我的代码:
public static final String[] groups = new String[] { "A", "B", "C", "D" };
public static final String[][] children = new String[][] {
{ "1" } ,
{ "2" },
{ "3"},
{ "4" }
};
View view = inflater.inflate(R.layout.fragment_dead, container, false);
categoriesList1 = (ExpandableListView)view.findViewById(R.id.categories);
String currTemplate = MainFragment.Default;
for(@SuppressWarnings("rawtypes") Map.Entry entry: map.entrySet()){
if(mTemplateId.equals(entry.getValue())){
currTemplate = (String) entry.getKey();
break;
}
}
mAdapter = new MenuExpandableListAdapter(Fragment.groups,
MainFragment.children, currTemplate, this.getActivity());
mAdapter.setSelectionListner(this);
categoriesList1.setGroupIndicator(null);
categoriesList1.setChildIndicator(null);
categoriesList1.setAdapter(mAdapter);
categoriesList1.setOnChildClickListener(mAdapter);
return view;
@Override
public void onClick(final View view) {
MainActivity activity = (MainActivity) getActivity();
switch (view.getId()) {
case R.id.button_done:
saveUserPreferences();
activity.hideSoftKeyboard(getView());
break;
default:
break;
}
答案 0 :(得分:2)
您应该阅读本文以了解有关数据存储基础知识的更多信息,它实际上非常简单:
http://developer.android.com/guide/topics/data/data-storage.html#pref
您可以使用SharedPreferences保存任何原始数据:布尔值,浮点数,整数,长整数和字符串。这些数据将在用户会话中持续存在(即使您的应用程序被终止)。
答案 1 :(得分:0)
你应该生成另一个只包含已检查选项的数组,然后保存它(通过共享数据或单例类)。 与显示此活动时相比,您选中了此值。所以当然如果第一次打开这个活动,你的checked items数组将为null,所以所有的值都将被取消选中。
通过java检查,你可以试试这个:
// also check this lines in the above example
ViewHolder holder = (ViewHolder) view.getTag();
holder.checkbox.setChecked(list.get(position).isSelected());