1、场景:
实现点击ListVeiw中的一个item,出现一个activity对话框,在对话框中对item中的数据进行修改.
2、实现方法:利用接口回调实现item中控件的点击事件
3、具体实现
3.1、在Adapter中写一个点击事件接口
private SaleInformSetAdapter.onItemSelectListener mOnItemSelectListener; public void setOnItemSelectClickListener(SaleInformSetAdapter.onItemSelectListener mOnItemSelectListener) { this.mOnItemSelectListener = mOnItemSelectListener; } public interface onItemSelectListener { void onSelectClick(int i); }3.2、为listView中的控件绑定事件
holder.Im_xiugai.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(mOnItemSelectListener==null){ UtilAlertDialog.ToastShortHandler("服务不正常,请联系开发人员!!!",context); }else{ mOnItemSelectListener.onSelectClick(position); } } });3.3、在activity中实现接口
adapter = new SaleDeliveryAdapter(SaleDeliveryActivity.this,saleDeliveryBeenList); mLv_det.setAdapter(adapter); adapter.setOnItemSelectClickListener(new SaleInformSetAdapter.onItemSelectListener() { @Override public void onSelectClick(int i) { Intent intent = new Intent(SaleDeliveryActivity.this, SaleDeliveryEditActivity.class); SaleInfoDetBean saleInfoDetBean = saleInfoDetBeanList.get(i); CommonData.setIsSelect_ch(i); String quantity = saleInfoDetBean.getQuantity(); String wareIden = saleInfoDetBean.getWareIden(); intent.putExtra("quantity",quantity); intent.putExtra("wareIden",wareIden); startActivity(intent); adapter.notifyDataSetChanged(); } });
3.4、我的3.3中的代码是写在onStart()中的,不然第二次点击item在3.2中的 onItemSelectListener会为null,目前还不知道为什么