ListView中单击其中一项创建ContextMenu,如何获取该localBookList...

如果是在ListView进行创建的上下文菜单,那么如何获取ListView所单击列项的数据呢?

有两种方式可获取:

1、           可以通过在长时间点击OnLongItemClick方法事件,将所单击的View数据进行临时保存,成为一个全局变量,那么在一个Activity里面的所有方法内均可访问

2、           可以通过onContextItemSelected方法里面进行获取ListView某一项的数据,

a)      AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();

b)      String name = ((TextView) info.targetView.findViewById(R.id.bookName)).getText().toString();

这种方式获得ListView布局文件中对应的数据

localBookList.setOnItemLongClickListener(new OnItemLongClickListener() {

	@Override
	public boolean onItemLongClick(AdapterView<?> parent, View view,int position, long id) {
	list_Temp = (HashMap<String, Object>) parent.getItemAtPosition(position);//list_Temp是全局变量
	return false;
			}
		});

如此,在创建ContextMenu的时候,首先会将数据存储到临时的list_Temp全局变量中,因此在ContextMenu的子Menu里均可访问到该ListView的子项的数据。另外也可以采用:

@Override
	public boolean onContextItemSelected(MenuItem item) {

		AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
				.getMenuInfo();
		String name = ((TextView) info.targetView.findViewById(R.id.bookName))
				.getText().toString();
		switch (item.getItemId()) {

		case BOOK_CONTEXT_MENU_DETAIL:

Toast.makeText(AndroidBook_MainActivity.this, name, 3).show();

			break;


		default:
			break;
		}

		return super.onContextItemSelected(item);
	}

这种方式只能获取list_item.xml里面定义的控件对应的值,无法获取其他的值,比如说:ListView控件里面有书名,。。。等等但是没有文件在SD卡里面的路径,除非将路径的字符串也存储到ListView里面去。

转载于:https://my.oschina.net/u/583392/blog/75180

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值