在SharedPreference中保存Custom ListView中的所有值时面临问题。
实际上,我的布局包含一个复选框,textview(自定义列表视图)和一个复选框(select_all),用于选择我的自定义列表视图中的所有数据。 单击select_all复选框时,自定义列表视图中显示的所有值都被选中,但只有前13个值存储在我的SharedPreference中。 这是我的程序片段,
selectAll.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
boolean isChecked = selectAll.isChecked();
if (isChecked) {
for (int i = 0; i < exportItems.getChildCount(); i++) {
listViewLayout = (LinearLayout) exportItems
.getChildAt(i);
cb = (CheckBox) listViewLayout
.findViewById(R.id.export_chk);
if (strTypes.equals("Orders/Invoices")) {
cb.setChecked(true);
ordRefNo = ordersList.get(i)
.getHhTran_referenceNumber();
supporter.saveOrderInPreference(ordRefNo, 1);
} else if (strTypes.equals("Credit Note")) {
cb.setChecked(true);
cnRefNo = creditNoteList.get(i)
.getHhTran_referenceNumber();
supporter.saveCreditNoteInPreference(cnRefNo, 1);
} else {
cb.setChecked(true);
docNo = receiptList.get(i).getHhReceipt_docnumber();
supporter.saveReceiptInPreference(docNo, 1);
}
}
orderAdapter.notifyDataSetChanged();
creditNoteAdapter.notifyDataSetChanged();
receiptAdapter.notifyDataSetChanged();
} else {
unCheckAll();
}
}
});
所以,任何人都可以帮助我存储我的Listvew中存在的所有值 SharedPreference。 任何帮助将不胜感激。
答案 0 :(得分:0)
ListView不适合接收用户的输入。因为您必须使用输入保存所有视图。如果你不这样做,滚动后一切都会清除。我认为ScrollView更适合这种情况。
无论如何,如果你想使用ListView,你就不能信任视图。因此,在每次操作之后,您必须填充数据(使用ListView)并调用notifyDataSetChanged()到ListView刷新本身。
PS 1:你应该认为ListView只显示我的观点,它不能操纵它们。这是重点。
PS 2:使用监听器和TextWatcher捕获输入并保存数据。
PS 3:我使用了Listview和EditTexts,我警告你,这是痛苦的屁股:)