illegalStateException: The specified child already has a parent 解决办法

最近在做一个项目时需要用到listView中item点击显示弹出框,第一次弹出正常运行,第二次点击就会崩溃报错illegalStateException: The specified child already has a parent 问题在没有调用parent的removeView方法清楚之前的View,然而adapterView并不支持removeView方法
经过查找应当在弹出事件中使用
removeViewInLayout方法

上代码
 
 
listView.setOnItemClickListener (new AdapterView.OnItemClickListener () { @Override public void onItemClick(AdapterView<?> parent , View view , final int i , long id ) { parent .removeViewInLayout (dialogView); dialogView = getLayoutInflater ().inflate (R.layout.layout_2,null); dialogWord = (EditText) dialogView.findViewById (R.id.et_dialog_word); dialogDetail = (EditText) dialogView.findViewById (R.id.et_dialog_detail); dialogWord.setText (dataList.get (i ).get ("word")); dialogDetail.setText (dataList.get (i ).get ("detail")); AlertDialog.Builder builder = new AlertDialog.Builder (Result_Activity.this); builder .setIcon (R.mipmap.ic_launcher); builder .setTitle ("单词信息");
builder .setView (dialogView);
builder .setNegativeButton ("确认修改", new DialogInterface.OnClickListener () { @Override public void onClick(DialogInterface arg0 , int arg1 ) { SQLiteDatabase db = dbHelper.getReadableDatabase (); String sql = "update dict set word = ?, detail = ? where _id = ?"; db .execSQL (sql ,new String []{dialogWord.getText ().toString (),dialogDetail.getText ().toString (),dataList.get (i).get ("id")}); Toast.makeText (Result_Activity.this,"数据修改成功",Toast.LENGTH_SHORT).show (); dataList.get (i).put ("word",dialogWord.getText ().toString ()); dataList.get (i).put ("detail",dialogDetail.getText ().toString ()); adapter.notifyDataSetChanged (); } }); builder .setPositiveButton ("取消",null); builder .create (); builder .show (); } });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值