setOnItemClickListener 单击时选中点击的Items

day_moon 2015-11-05 08:31:14
效果图:


Activity类部分代码如下:

/*为listView添加监听。作用当用户点击该商品时,就把商品的ID传过去
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
lv.getPositionForView(position);
Intent intent=new Intent(ProductPlay.this,ProductDetailActivity.class);
intent.putExtra("id", vo.getId());
//跳转到新的activity
startActivity(intent);
}
});

布局文件部分代码(Item):

<TextView
android:visibility="visible"
android:id="@id/tv_id"
android:layout_width="10.0dp"
android:layout_height="wrap_content">
</TextView>

跪求大神!
问题:1、在Activity类怎么获取得到点击的Item呢?(红色部分:lv.getPositionForView(position,不懂怎么写下去了?)
2、在Activity类怎么获取得到用户点击的那个Item的ID呢?(红色部分:intent.putExtra("id", vo.getId());
...全文
1213 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
day_moon 2015-11-06
  • 打赏
  • 举报
回复
我是菜鸟?你们可以写详细一点吗?跪求大神?
szivy 2015-11-06
  • 打赏
  • 举报
回复
看看,7楼回答正解
  • 打赏
  • 举报
回复
List<Map<String,Object>> datas=product.getDatas(); public void onItemClick(AdapterView<?> parent, View view,int position, long id) { datas应该就是你的数据源吧,onItemClick的参数里面有个position 用datas.get(location)可以得到HashMap键值对,可以从里面拿到你要的id等信息
day_moon 2015-11-06
  • 打赏
  • 举报
回复
好的。下面是适配器和数据源: //SimpleAdapter适配器: ProductDao product =new ProductDao(ProductPlay.this); List<Map<String,Object>> datas=product.getDatas(); //创建一个SimpleAdapter适配器 SimpleAdapter mSimpleAdapter=new SimpleAdapter(ProductPlay.this,datas,R.layout.product_list,new String[]{"id","image","name","price"}, new int[]{R.id.tv_id,R.id.goodsIconIv,R.id.textClothesName,R.id.textClothesPrice}); ProductDao类getDatas()中: public List<Map<String,Object>> getDatas(){ Map<String, Object> map = new HashMap<String, Object>(); List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); SQLiteDatabase db=null; Cursor cursor=null; try{ db=helper.getWritableDatabase(); String sql="select * from cart_product"; cursor=db.rawQuery( sql, null); while (cursor.moveToNext()) { int id=cursor.getInt(cursor.getColumnIndex("id")); //把图片现转为byte,再转化为Bitmap byte[] image_byte = cursor.getBlob(cursor.getColumnIndex("image")); Bitmap image = BitmapFactory.decodeByteArray(image_byte, 0, image_byte.length); String name=cursor.getString(cursor.getColumnIndex("name")); String price = cursor.getString(cursor.getColumnIndex("price")); map = new HashMap<String, Object>(); map.put("id",id); map.put("image", image); map.put("name",name); map.put("price",price); list.add(map); Log.i("已经得到了一个商品", "该商品是"+name); } }catch(Exception e){ e.printStackTrace(); }finally{ cursor.close(); db.close(); } return list; }
猴子写代码 2015-11-06
  • 打赏
  • 举报
回复
把你的数据适配器adapter代码贴出来 或者把你初始化listview的所有代码贴出来 如果你用了adapter那么应该有list,list.get(postion).getID();
UDBuilder 2015-11-06
  • 打赏
  • 举报
回复
这样看你的数据源的数据结构了
day_moon 2015-11-06
  • 打赏
  • 举报
回复
我想问一下各位大神,怎么获取得到用户点击的那个Item的ID呢?
UDBuilder 2015-11-05
  • 打赏
  • 举报
回复
listview有对应的adapter,adapter中装载了列表中要显示的数据list,利用点击事件中的position就可以得到了 item = list.get(position);
阿飞__ 2015-11-05
  • 打赏
  • 举报
回复
不是有个数据源list?然后点击事件里有个position,然后要什么数据不都可以得到了么

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧