ListView布局文件如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="30dp" >
<com.h1.warehouse.control.MyTableTextView
android:id="@+id/tv_net"
android:layout_width="100dp"
android:layout_height="fill_parent"
android:layout_alignBottom="@+id/tv_gross"
android:layout_alignTop="@+id/tv_gross"
android:layout_toRightOf="@+id/tv_gross"
android:gravity="center"
android:textColor="#000"
android:textSize="13sp" />
<com.h1.warehouse.control.MyTableTextView
android:id="@+id/tv_invoice"
android:layout_width="100dp"
android:layout_height="fill_parent"
android:layout_alignBottom="@+id/tv_net"
android:layout_alignTop="@+id/tv_net"
android:layout_toRightOf="@+id/tv_net"
android:gravity="center"
android:textColor="#000"
android:textSize="13sp" />
<Button
android:id="@+id/btn_delete"
android:layout_width="60dp"
android:layout_height="fill_parent"
android:layout_alignBottom="@+id/tv_invoice"
android:layout_alignTop="@+id/tv_invoice"
android:layout_marginRight="5dp"
android:layout_toRightOf="@+id/tv_invoice"
android:background="@color/blue"
android:gravity="center"
android:text="删除"
android:textColor="@android:color/white" />
</RelativeLayout>
在Adapter中为button添加了点击事件,然后给Listview添加了点击事件,
//点击事件
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(position > 0){
ProductEntity entity = list.get(position);
txtContent.setText(commonUtils.toString(entity));
}
}
});
然后发现上面点击listview时一直不会影响,但是点击删除按钮有响应。
【解决方法】
上面删除按钮的点击事件与listview点击事件有冲突,比如点击按钮那一列时无法确定操作者的意图是删除还是作为listview项的点击事件响应,因此可以考虑将删除按钮去除,改成长按listview时候进行删除,
//设置listview长按事件
listView.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
if(position > 0){
final int t = position;
MsgBox.question(getActivity(),new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
list.remove(t);
adapter.notifyDataSetChanged();
txtStatics.setText(commonUtils.getStatics(list));
}
},"确定要删除");
}
return true;//如果返回false则会触发点击事件
}
});
这样就可以解决标题描述的问题