내 활동에는 목록보기가 있는데, 그 이유는 onItemClickListener
과 onTouchListener
입니다. 내 list.OnTouch
메서드에서 행을 클릭하면 MotionEvent
Down
및 Up
이라는 메서드가 호출됩니다. 두 경우 모두 터치 이벤트를 처리하고 싶지 않고 관찰하고 싶기 때문에 "false"를 반환합니다. 이 순간에 나는 onItemClick
이 전화해야한다고 생각하지만 일어나는 것은 아닙니다. 그러나 내 목록보기를 이동하면 OnTouch
동작 이벤트 "이동"이 호출 된 후 항목을 클릭하면 트리거됩니다. 그렇다면 처음에 왜 itemClick
이 트리거되지 않았으며 목록보기에서 이동 한 후에 트리거 된 이유는 무엇입니까?스크롤하지 않으면 onTouchListener가 있으면 OnItemClickListener가 트리거되지 않습니까?
코드 :
public class MainActivity extends Activity {
Handler rHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lv = (ListView) this.findViewById(R.id.mylist);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
System.out.println("An Item is clicked not touched");
}
});
rHandler = new Handler(this,lv);
}
}
나는 어댑터에 사용자 정의의 ListView 정맥 주사를 채우기하고 그 목록의 행이 나는 imageViews.So에 대한 몇 가지 온 클릭 이벤트를 imageViews.Also textViews를 구성하고, 내가 시도 안드로이드 : 포커스 및 안드로이드 : focusableInTouchMode가 imageView.But에서 false로 설정된 경우 성공하지 못했습니다. 나는 이미지 온 클릭 이벤트를 클릭하면 Handler.java
public class Handler implements View.OnTouchListener {
public Handler(Context mContext,ListView lv) {
lv.setOnTouchListener(this);
}
@Override
public final boolean onTouch(View view, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE: {
System.out.println(" Motion ... ");
break;
}
case MotionEvent.ACTION_DOWN: {
System.out.println(" Motion Down ");
break;
}
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP: {
System.out.println(" Motion Up ");
break;
}
}
System.out.println("I am returning false");
return false;
}
}
내 OnItemClick에서
활성화에 온 경우, 또는 나는 아주 이상한 내 list.Looks 이동!
이 당신의 코드를 게시 도움이되기를 바랍니다 .. –