当一个控件监听了从 View上面继承来的点击事件,和从AdapterView继承来的长点击事件事,如果一起长点击,就会一起相应,因为这个是回调机制例如:
exList.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@SuppressLint("ResourceAsColor") @Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
// TODO Auto-generated method stub
Log.d("MY", "你点击了" + adapter.getChild(groupPosition, childPosition));
group.add(groupPosition);
child.add(childPosition);
if(myvariate.moshi.equals("早检")){
CreateZaoJian(groupPosition, childPosition);
}else{
CreateKeJian(groupPosition, childPosition);
}
return false;
}
});
exList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View view,
int arg2, long arg3) {
// TODO Auto-generated method stub
Log.d("My",""+ arg2);
int groupPosition =(Integer) view.getTag(R.string.GroupPosition);
int childPosition =(Integer) view.getTag(R.string.ChildPosition);
if(childPosition==-1){
//父控件的值
Log.d("MY", "长安的是"+groupData.get(groupPosition));
}else {
Log.d("MY", "长安的是"+childData.get(groupPosition).get(childPosition) );
createSelect(groupPosition,childPosition);
}
//返回值为true 让其不往上回调
return true;
}
} );
如果 setOnItemLongClickListener返回的值为false 时,两个点击事件会一起进行,如果返回值为true 时就继续向上回调。