首先,如果是用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. }总结
以上是内存溢出为你收集整理的ListView获取选中和长按菜单对应的ID全部内容,希望文章能够帮你解决ListView获取选中和长按菜单对应的ID所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)