2011-07-19 25 views
10

我做了一個應用程序,它實現了一個View.OnTouchListener。但是,當我上傳到Android Market中(谷歌Play商店),我得到了以下信息:OnTouchListener和OnClickListener之間的區別

這個apk要求1層的功能,將可用於Android Market的 過濾:android.hardware.touchscreen

我真的不需要觸摸屏本身。你也可以「點擊」視圖,這會很好。如果我使用OnClickListener而不是OnTouchListener,這個要求會消失嗎?

有多少百分比的Android設備沒有觸摸屏?如果從OnTouchListenerOnClickListener的這個更新在新潛在用戶方面是值得的?

+1

Android手機的最大數量具有觸摸屏,因此最好使用OnTouchListeners,而不是使用OnClickListeners – Lavanya

+0

Rosalie的以上評論意味着OnClickListener不適用於觸摸屏設備 - 這完全是錯誤的。正如cdhabecker的回答所述,選擇更依賴於你想要完成的事情。 – glorifiedHacker

回答

15

OnTouchListener用於比OnClickListener更細粒度的控制。如果您真正關心的是點擊 - 即,向下觸摸/向上觸摸/不拖動 - 然後使用OnClickListener的組合,那就是它的目的。

+0

我不需要細粒度的控制,所以希望使用OnClickListener會增加潛在的市場。順便說一句,我試圖將代碼更改爲OnClickListener,創建了一個沒有觸摸屏支持的AVD,並啓用了軌跡球(Windows中的F6鍵)。然而,當在模擬器中運行應用程序時,我並沒有獲得有關光標位置的任何視覺反饋,並且使用隨機點擊和軌跡球移動,我無法使事件發生。我錯過了什麼嗎? – Sandy

+0

我還沒有嘗試過自己的無觸摸屏AVD。我不信任模擬器功能,因此我建議您先在仿真器的瀏覽器應用程序上測試您的軌跡球設置。另外,請嘗試模擬器的箭頭鍵。如果這些工作在瀏覽器應用程序上,但不是您自己的,那麼您可能無意中將您的視圖對象設置爲不可點擊或不可焦點。 – cdhabecker

+0

@Rob聽起來好像這個答案是你所需要的;你想接受嗎? – cdhabecker