六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 275|回复: 0

ListView获取选中和长按菜单对应的item的_id值

[复制链接]

升级  66%

7

主题

7

主题

7

主题

童生

Rank: 1

积分
33
 楼主| 发表于 2013-1-30 01:17:08 | 显示全部楼层 |阅读模式
首先,如果是用simpleCursorAdapter填充ListView的数据时,必须注意sqlite的主键命名,由于simpleCursorAdapter的方法只识别_id,所以,当你用到sqlite的simpleCursorAdapter时,必须把数据表的主键命名为_id。否则就会出现java.lang.IllegalArgumentException: column '_id' does not exist错误。
(1)言归正传,当我们点击ListView时,会调用ListView的点击事件,那么点击的这个item的对应的数据库的_id的值,我们可以通过以下代码获取
 
public class RoadPickList extends Activity{private static final String TAG = "RoadPickList";private ListView lv;private int id;public void onCreate(Bundle savedInstanceState) {                super.onCreate(savedInstanceState);        setContentView(R.layout.roadpicklist);        lv = (ListView)findViewById(R.id.listview);        /**         * 添加点击         */        lv.setOnItemClickListener(new ListView.OnItemClickListener() {public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stubid = (int) arg3;//这里的这个arg3对应的就是数据库中_id的值}             });  } 
 (2)另外,我们可能还会用到长按菜单(上下文菜单),当我们在ListView上长按时,想获得长按的这个ListViewitem_id的值,参考下面这段代码
 
/*** 长按菜单的响应*/public boolean onContextItemSelected(MenuItem aItem) {              ContextMenuInfo menuInfo = (ContextMenuInfo) aItem.getMenuInfo();              AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)aItem.getMenuInfo();          id = (int)info.id;//这里的info.id对应的就是数据库中_id的值      return true; }  
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表