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. }   

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值