1

onClickListenerを追加したいビューがあります。問題は、ユーザーがドラッグ操作を実行してもリスナーが起動することです。ユーザーがドラッグしたときにクリックを抑制し、ドラッグせずにクリックしたときにのみ処理するにはどうすればよいですか?

完全を期すために、以下のようなものを使用してonClickListenerを追加しています-

private void installClickHandler(final GraphicalView x) {
    x.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent myIntent = new Intent(getApplicationContext(), BillTablesActivity.class);
            startActivity(myIntent);
            }
        }
    });
}
4

1 に答える 1

1

onTouchListener()を設定します。これは、ドラッグする場合は true を返し、そうでない場合は false を返し、OnClickListenerがイベントを処理できるようにします。つまり、タッチをクリックとして扱うかどうかを決めるのはあなた次第です。

何かがクリックかドラッグ (または長押し) かを判断するには、OnTouchListenerACTION_DOWNの実装でイベントを追跡しACTION_UP、2 つの時間を比較する必要があります。短い間隔はクリックになり、長い時間はドラッグまたは長押しになります。

特定の実装は、読者の演習として残されています:)

于 2012-06-22T23:26:39.473 に答える