首先,如果是用simpleCursorAdapter填充ListView的数据时,必须注意sqlite的主键命名,由于simpleCursorAdapter的方法只识别_id,所以,当你用到sqlite的simpleCursorAdapter时,必须把数据表的主键命名为_id。否则就会出现java.lang.IllegalArgumentException: column '_id' does not exist错误。
(1)言归正传,当我们点击ListView时,会调用ListView的点击事件,那么点击的这个item的对应的数据库的_id的值,我们可以通过以下代码获取
- publicclassRoadPickListextendsActivity{
- privatestaticfinalStringTAG="RoadPickList";
- privateListViewlv;
- privateintid;
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.roadpicklist);
- lv=(ListView)findViewById(R.id.listview);
- /**
- *添加点击
- */
- lv.setOnItemClickListener(newListView.OnItemClickListener(){
- publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,
- longarg3){
- //TODOAuto-generatedmethodstub
- id=(int)arg3;//这里的这个arg3对应的就是数据库中_id的值
- }
- });
- }
(2)另外,我们可能还会用到长按菜单(上下文菜单),当我们在ListView上长按时,想获得长按的这个ListView的item的_id的值,参考下面这段代码