クリックイベントにはダブルクリック防止処理が必要
view.tv_undo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!CommonUtils.isClickEvent()) return;
list3Oya.get(position).set10FlgUndo("0");
adapter.notifyDataSetChanged();
}
});
public class CommonUtils {
/** クリック連打制御時間(ミリ秒) */
private static final long CLICK_DELAY = 2000;
/** 前回のクリックイベント実行時間 */
private static long mOldClickTime;
public static boolean isClickEvent() {
/**
* クリックイベントが実行可能か判断する。
* @return クリックイベントの実行可否 (true:可, false:否)
*/
// 現在時間を取得する
long time = System.currentTimeMillis();
// 一定時間経過していなければクリックイベント実行不可
if (time - mOldClickTime < CLICK_DELAY) {
return false;
}
// 一定時間経過したらクリックイベント実行可能
mOldClickTime = time;
return true;
}
}