dev*_*oid 5 android onclick simpleadapter onclicklistener
我有两列的类别表category_id和name.我创建了一个名为的数据助手类CategoryDataHelper.我有一个名为getCategoryCursor()该助手类的方法,它从类别表中获取id和名称并返回游标.使用该光标,我已经习惯SimpleCursorAdapter显示类别列表.它工作正常.
public class Categories extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
categoryDataHelper = new CategoryDataHelper(getApplicationContext());
Cursor categoryCursor = categoryDataHelper.getCategoryCursor();
ListAdapter adapter = new SimpleCursorAdapter (
this,
android.R.layout.simple_list_item_1,
categoryCursor,
new String[] { CategoryDataHelper.NAME },
new int[] {android.R.id.text1});
// Bind to our new adapter.
setListAdapter(adapter);
list = getListView();
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Here I want the category_id
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想实现一个OnItemClickListener并使用category_id所选类别发送一个Intent .如何在onItemClick()方法中获取id ?
Mat*_*lis 17
您可能应该从适配器获取光标.这样,如果您的光标被替换,您仍然仍然获得有效的光标.
Cursor cursor = ((SimpleCursorAdapter) adapterView).getCursor();
cursor.moveToPosition(position);
long categoryId = cursor.getLong(cursor.getColumnIndex(CategoryDataHelper.ID));
Run Code Online (Sandbox Code Playgroud)
或使用"category_id"或任何列的名称代替CategoryDataHelper.ID.