【发布时间】:2011-09-15 05:30:57
【问题描述】:
我正在尝试读取具有多个checkboxes 的列表中的联系人,但是当我调用sparsebooleanarray..它只会为所有列表条目返回false,..即使是选中的那个...我查看了这个线程Why is ListView.getCheckedItemPositions() not returning correct values? ...但是当我实现 addClickHandlerToCheckBox 时它会强制停止..这已经困扰了我 4 天..请帮助..
public void populateContactList() {
// Build adapter with contact entries
final Cursor cursor = getContacts();
String[] fields = new String[] {
ContactsContract.Data.DISPLAY_NAME
};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.contact_entry, cursor,
fields, new int[] {R.id.contactEntryText});
mContactList.setAdapter(adapter);
mContactList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
proceedButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
SparseBooleanArray checked=mContactList.getCheckedItemPositions();
int len = mContactList.getCount();
for(int i=0;i<len;i++)
{
if(checked.get(i)==true)
{
String item = mContactList.getAdapter().getItem(checked.keyAt(i)).toString();
edt.append(","+item);
}
}
}
});
}
【问题讨论】:
标签: android listview checkbox android-layout android-listview