Mình có 1 ListView, khi set sự kiện OnItemLongClickListener thì AlertDialog sẽ hiện lên hỏi có đồng ý xóa hay không và khi set sự kiện OnItemClickListener thì sẽ chuyển sang ActivityCapNhat. Nhưng khi LongClick vào ListView thì nó vẫn bắt sự kiện Click vào item và chuyển sang ActivityCapNhat. Làm sao để khắc phục ?
Code:
listViewPaint.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
//parent.getChildAt(position).setBackgroundColor(Color.parseColor("#FAFAFA"));
// Xóa 1 paint
final int position2 = position;
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Thông báo");
builder.setMessage("Bạn có muốn xóa paint này ?");
builder.setPositiveButton("Có", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
_id = arrayList.get(position2).getId();
database.QueryData("DELETE FROM Painttbl WHERE Id = '" + _id + "'");
LoadDuLieu();
Toast.makeText(getActivity(), "Đã xóa paint.", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("Không", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.show();
return false;
}
});
listViewPaint.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Đưa id và name của paint sang CapNhatPaintActivity
int _idEdit = arrayList.get(position).getId();
String name = arrayList.get(position).getName();
byte[] paint = arrayList.get(position).getPaint();
//parent.getChildAt(position).setBackgroundColor(Color.parseColor("#FAFAFA"));
Intent intentEdit = new Intent(getActivity(), CapNhatPaintActivity.class);
intentEdit.putExtra("_idEdit", _idEdit);
intentEdit.putExtra("name", name);
intentEdit.putExtra("paint", paint);
startActivity(intentEdit);
}
});


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?