今天项目中遇到listview itme双击事件与CheckBox冲突 在网上找资料发现只要在listview加载itme的根目录里面加入android:descendantFocusability="blocksDescendants" 就可以了
//listview双击事件
private void initListener() {
list_tmp_task1.setOnItemClickListener(new OnItemClickListener() {
private long firClick;
private long secClick;
private int count;
private int selectIndex;
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
count++;
if (count == 1) {
firClick = System.currentTimeMillis();
} else if (count == 2) {
secClick = System.currentTimeMillis();
if (secClick - firClick < 2000) {
if (selectIndex == position) {
Intent intent = new Intent(InfHandelTaskActivity.this,InfObvioustask.class);
intent.putExtra("ataskRecord",alist.get(position));
startActivity(intent);
count = 0;
firClick = 0;
secClick = 0;
} else {
count = 1;
firClick = secClick;
}
} else {
count = 0;
firClick = 0;
secClick = 0;
}
}
selectIndex = position;
}
});
}
//CheckBox点击事件
holder.item_cb_section.setChecked(selectIndex == position ? true: false);
holder.item_cb_section.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (selectIndex == position)
((CheckBox) v).setChecked(true);
else if (selectIndex != -1) {
View item = mListView.getChildAt(selectIndex);
if (item != null) {
CheckBox ch = (CheckBox) item.findViewById(R.id.item_cb_section);
ch.setChecked(false);
}
}
selectIndex = position;
}
});