2011-06-30 7 views
0

長いタップだけでなく、ダブルクリックでもコンテキストメニューを作成する必要があります。どのようにそれを行うことができますか?ダブルクリックでコンテキストメニューを作成するには?

これは、ユーザーがウィジェットで長いタップを押すと、通常はonCreateContextMenuと呼ばれます。私の場合は、ユーザがウィジェットをダブルクリックしたときも同じことをする必要があります。

は、それがAndroidのUIのために正常ではないですので、私は、それは本当にすてきな選択肢ではないことを知っている

を追加しました。しかし、私の主な問題は、HTC(look this post)などのベンダーのデバイスのUIバグを解決することです。私は一見問題を解決したようですが、それでも私はコンテキストメニューに問題があります。最後の手段として、私はちょうどダブルクリックをタップすることを避けるために考えた。 Thanxを理解するために...

+2

"ダブルタップだけでなく、長いタップでもコンテキストメニューを作成する必要があります。" - なぜ?これはAndroidの標準UXではありません。 – CommonsWare

+0

@CommonsWare - 上記を見て、私はいくつかのコメントを追加しました – barmaley

答えて

1

私が収集したことから、あなたはEditTextに結びつきたいと思う状況依存の行動があり、HTCのAndroidへの変更はそれに干渉しています。

まず、一般的なコンテキストメニューを再考します。特にコンテキストメニューは見つからないため、ほとんどのユーザーは見つからないでしょう。

第2に、EditTextの場合、ダブルタップがコンテキストメニューを表示することを発見したユーザーの確率は、地球が消滅レベルの小惑星ストライキを今日持っている確率と同程度になります。

は::空を見上げ::

ではなく、ダブルタップ、一つの選択肢は、下向きの矢印(Spinnerに似)と、EditTextに隣接する小ImageButtonを置くことであろう、 ImageButtonPopupMenu(理想的ですがAPIレベル11のみ)、PopupWindow、またはAlertDialogに結び付けます。または、ピンチで、showContextMenu()でクリックすると、ImageButtonにコンテキストメニューが表示されます。これも非標準のUXですが、Androidや他のOSの両方から下向きの矢印ボタンを押したときにユーザーがポップアップすることに慣れているため、少なくとも発見可能です。

認識されたタッチイベントではないダブルタップAFAIKが必要であると確信している場合、低レベルのタッチイベントを自分で処理し、ダブルタップが発生したときを判断し、したがって、EditTextの使用を妨げない方法で(例えば、カーソル位置を設定する)。

関連する問題