Dialog传上下文的问题

本文详细阐述了在Android应用中使用ListView进行长按删除操作时遇到的上下文问题,并提供了解决方案。通过实例代码,演示了如何正确处理删除操作中的上下文,确保数据操作的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


 今天,遇到了一个奇葩的问题,调了一上午,原来是传上下文有问题:代码如下

// 信息对话框
		final AlertDialog.Builder uBuilder = new AlertDialog.Builder(this);
		xlistView.setOnItemLongClickListener(new OnItemLongClickListener() {

			@Override
			public boolean onItemLongClick(AdapterView<?> parent, View view,
					final int position, long id) {

				uBuilder.setMessage("你确认要删除吗?")
						.setPositiveButton("是",
								new DialogInterface.OnClickListener() {

									@Override
									public void onClick(DialogInterface dialog,
											int which) {

										map = datas.get(position-1);
										
										//id 是记录的行号,_id 主键
										String id = map.get("_id").toString();
										System.out.println("===========>"+id);
										// 删除数据
								       //datas.remove(position-1);
								DataManager dataManagers=new DataManager(getApplicationContext()); ///注意,这里的上下文
										dataManagers.delete(id);
                                                                                datas=dataManagers.find();
										adapter.notifyDataSetChanged();
										Toast.makeText(getBaseContext(),
												"删除成功", Toast.LENGTH_SHORT)
												.show();

									}
								})
						.setNegativeButton("否",
								new DialogInterface.OnClickListener() {

									@Override
									public void onClick(DialogInterface dialog,
											int which) {

									}
								}).show();

				return true;
			}
		});
		

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值