Unmotivated

やる気はない

ListView で onItemClick() と onItemLongClick() を両立

ListView で onItemClick() と onItemLongClick() を同時に仕掛けた際に、指を離すタイミングによっては onItemLongClick() に続けて onItemClick() が呼ばれてしまう。

一般的な Touch Event の例に漏れず、 onItemLongClick() で true を返しておけば、その後のイベントはキャンセルされる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    /*
        なんやかんや
    */
}

@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
    /*
        なんやかんや
    */
    return true;    // これで onItemLongClick() のあとに onItemClick() が呼ばれなくなる
}

Comments