前端之家收集整理的这篇文章主要介绍了
ListView获取选中和长按菜单对应的ID,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
首先,如果是用simpleCursorAdapter填充ListView的数据时,必须注意sqlite的主键命名,由于 simpleCursorAdapter的方法只识别_id,所以,当你用到sqlite的simpleCursorAdapter时,必须把数据表的主键命名为_id。否则就会出现java.lang.IllegalArgumentException: column '_id' does not exist错误。
(1)言归正传,当我们点击ListView时,会调用ListView的点击事件,那么点击的这个item的对应的数据库的_id的值,我们可以通过以下代码获取
Java代码 收藏代码
1. public class RoadPickList extends Activity{
2. private static final String TAG = "RoadPickList";
3. private ListView lv;
4. private int id;
5. public void onCreate(Bundle savedInstanceState) {
6. super.onCreate(savedInstanceState);
7. setContentView(R.layout.roadpicklist);
8. lv = (ListView)findViewById(R.id.listview);
9. /**
10. * 添加点击
11. */
12. lv.setOnItemClickListener(new ListView.OnItemClickListener() {
13.
14. public void onItemClick(AdapterView<?> arg0,View arg1,int arg2,15. long arg3) {
16. // TODO Auto-generated method stub
17. id = (int) arg3;//这里的这个arg3对应的就是数据库中_id的值
18. }
19.
20. });
21. }
(2)另外,我们可能还会用到长按菜单(上下文菜单),当我们在ListView上长按时,想获得长按的这个ListView的item的_id的值,参考下面这段代码
Java代码 收藏代码
1. /**
2. * 长按菜单的响应
3. */
4. public boolean onContextItemSelected(MenuItem aItem) {
5. ContextMenuInfo menuInfo = (ContextMenuInfo) aItem.getMenuInfo();
6. AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)aItem.getMenuInfo();
7. id = (int)info.id;//这里的info.id对应的就是数据库中_id的值
8. return true;
9. }
原文链接:https://www.f2er.com/sqlite/202085.html