我有一个ListActivity,我做了这个
Cursor cursor = getContentResolver().query(Phone.CONTENT_URI,
new String[] { Phone._ID, Phone.DISPLAY_NAME }, null, null,
null);
startManagingCursor(cursor);
String[] columns = new String[] { Phone.DISPLAY_NAME };
int[] to = new int[] { R.id.name_row };
ListAdapter mAdapter = new SimpleCursorAdapter(this,
R.layout.contact_list_row, cursor, columns, to);
this.setListAdapter(mAdapter);
绑定我的联系人姓名,不是我的listadapter。每一行都是一个checkedtext视图,所以知道我想创建一个方法来检索我检查过的项目,但是我无法让它工作。有人能指出我正确的方向吗?
答案 0 :(得分:0)
我不是100%肯定复选框,但我已经为按钮和其他元素做了这个,并且快速浏览一下,我觉得这个方法是一样的。
在复选框元素布局XML中插入android:onClick="methodName"
。
与此函数类似:
//Called from XML
public void methodName(View view) {
int cursorPosition= getListView().getPositionForView(view);
Bundle itemData = (Bundle) mAdapter.getItem(cursorPosition);
// do something with data
}
答案 1 :(得分:0)
所以我找到了自己的方式。问题是我使用的是checked_positions.get(i)而不是checked_positions.valueAt(i)。
ListView lv = getListView();
SparseBooleanArray checked_positions = lv.getCheckedItemPositions();
for (int i = 0; i < checked_positions.size(); i++) {
Log.d(TAG, "Checked " + i + " Value " + checked_positions.valueAt(i));
if (checked_positions.valueAt(i)) {
Cursor ctv = (Cursor) lv.getItemAtPosition(checked_positions.keyAt(i));
}
}