2013-07-28 22 views
7

w Android dokumencie wymienia wspieranie „hover” zdarzenie od 4.0 (tj. Poziom API 14 i więcej). Ale jakoś to nie działa. Nawet próbowałem kodu przykładowego w ApiDemo, który pochodzi z Android Sample, nie działało. Moje bieżące urządzenie to Android 4.0.4. Czy powinienem uaktualnić go do wersji 4.2.2?onHoverListener nie działa w Androidzie

Przykładowy kod jest coś jak poniżej. Czy masz rozwiązanie tego problemu? Wielkie dzięki.

Kod:


View container = findViewById(R.id.container); 
    container.setOnHoverListener(new View.OnHoverListener() { 
     @Override 
     public boolean onHover(View v, MotionEvent event) { 
      switch (event.getAction()) { 
       case MotionEvent.ACTION_HOVER_ENTER: 
        mMessageTextView.setText(Hover.this.getResources().getString(
          R.string.hover_message_entered_at, 
          event.getX(), event.getY())); 
        break; 
       case MotionEvent.ACTION_HOVER_MOVE: 
        mMessageTextView.setText(Hover.this.getResources().getString(
          R.string.hover_message_moved_at, 
          event.getX(), event.getY())); 
        break; 
       case MotionEvent.ACTION_HOVER_EXIT: 
        mMessageTextView.setText(Hover.this.getResources().getString(
          R.string.hover_message_exited_at, 
          event.getX(), event.getY())); 
        break; 
      } 
      return false; 
     } 
    }); 

Odpowiedz

9

Unosząc wymaga wsparcia ze strony sprzętu. Jedyną rzeczą, która może go wspierać jest rysik. To nie zadziała z twoim palcem.

+0

Dzięki. Czy to działa z myszą? na przykład mysz bluetooth kompatybilna z urządzeniem z systemem Android? –

+0

Nie jestem pewien, nigdy tego nie próbowałem. Myślę, że może (bez kliknięcia myszką, jak najechanie ma sens), ale nie mogę tego przysiąc. –

+0

W ramach aktualizacji niektóre urządzenia będą teraz mogły wykrywać zawisanie jednym palcem. Ale tak naprawdę tylko urządzenia wyższej klasy, takie jak Note. Nie możesz na nim polegać. –

0

Proponuję Włącz „dostępność” i „dotykiem” funkcji w ustawieniach. Gdy te funkcje są wyłączone, akcja najedź kursorem będzie traktowana jako działanie dotykowe.

1

spróbuj OnFocusChangeListener(). PS pracował dla mnie

Powiązane problemy