我有一个自定义 ArrayAdapter,它由包含单选模式单选按钮的布局填充。我设法保存添加到 ListView 的项目,并在活动被破坏但选中的单选按钮失去它的状态时重新填充 ListView。在网上搜索了两天,发现唯一的解决方案是使用 SharedPreference 保存单选按钮。这是我到目前为止所做的,也许有人可以指出我正确的方向。谢谢。
代码:-我使用setOnItemClickListener()
来捕获列表视图中的项目和单选按钮以保存但无法弄清楚如何从 sharedpreference 重新填充选中的单选按钮,如果这确实是正确的方法。
OnCreate() 方法代码:-
ListView sist = (ListView) findViewById(R.id.list);
adapter = new SAdapter(this, populateArrayList());
sList.setOnItemClickListener(itemListener);
sList.setAdapter(adapter);
onItemClickListener 代码:-
private AdapterView.OnItemClickListener itemListener = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
for (int i= 0; i < parent.getCount(); i++) {
view = parent.getChildAt(i);
RadioButton s_rb = (RadioButton) view.findViewById(R.id.s_rdb);
int checkedState = s_rb.isChecked() ? 1 : 0;
saveState(s_rb.getId(), checkedState);
}
}
};
将项目添加到适配器和数据库的代码:-
InfoHelper helper = new InfoHelper(Number_et.getText().toString(),messageBody_et.getText().toString());
adapter.add(helper);
insertInfoToDB(helper);
我的问题是如何保存单选按钮的状态,因为该列表以前是从数据库更新的。如果这还不够,可以给出更多代码。