2011-09-01 41 views
9

Potrzebuję pomocy w znalezieniu sposobu sprawdzenia, czy urządzenie jest wyposażone w przycisk sprzętu wyszukiwania, czy nie. czy to możliwe?Sprawdź, czy urządzenie z Androidem ma przycisk sprzętowy wyszukiwania

EDYCJA: Mówię o sprawdzeniu, czy urządzenie ma przycisk sprzętu wyszukiwania, czy nie. Proste pytanie. Każde urządzenie z Androidem ma zestaw przycisków sprzętowych; menu, przycisk główny, przycisk Wstecz i przycisk wyszukiwania. Ale niektóre urządzenia są wyposażone tylko w niektóre z nich, nie wszystkie.

EDIT 2: Powodem Pytam dlatego, że chcą mieć oprogramowanie przycisk pokazujący w moim UI, jeśli urządzenie nie jest wyposażony w przycisku sprzętowego. Używam interfejsu searchable w mojej aktywności. Nie stosuję podejścia EditText/TextField.

+0

Jeśli nie idę źle, powiedziałeś o przycisku sprzętowym wyszukiwania sprzętu lub o jakimś graficznym przycisku widoku? – user370305

+0

Myślałem, że to wymaganie dla urządzeń z Androidem. – rds

+0

Nie wszystkie urządzenia są wyposażone w przyciski sprzętowe. Nowa karta Galaxy Tab 10.1 nie ma żadnego z tych przycisków, o których wspomniałem wcześniej. – ScratchMyTail

Odpowiedz

-2

Lepszy sposób można zrobić usign dwa sposoby

  1. umieścić przycisk wyszukiwania i zadzwonić do onSearchRequested();

  2. Drugi sposób na kliknij EditText umieścić android:imeOptions="actionSearch" więc trzeba
    sprawdzana dla

    searchBox.setOnEditorActionListener(new OnEditorActionListener() 
    { 
        public boolean onEditorAction(TextView textView, int id,KeyEvent event) 
        { 
        if (id == EditorInfo.IME_ACTION_SEARCH) 
         { 
          //do what ever you want 
         } 
        return true; 
        } 
    }); 
    

Mam nadzieję, że to ci pomoże.

+1

Nie pytam, jak aktywować pole wyszukiwania. Pytam, jak możemy się dowiedzieć, czy urządzenie jest wyposażone w wyszukiwanie sprzętu, czy nie. Pomysł jest prosty. Jeśli urządzenie NIE ma przycisku wyszukiwania sprzętu, muszę wyświetlić przycisk oprogramowania. Jeśli ma przycisk sprzętowy, nie pokazuję przycisku oprogramowania. To mój plan. – ScratchMyTail

+1

Głosowałem za odrzuceniem, ponieważ nie uzasadnia to pytania i wymaga rozwiązania. –

1

Nie sądzę, że musisz wykryć, czy rzeczywiście ma przycisk sprzętu wyszukiwania. Ramy te pomogą ci (tutaj, jestem pewien, że proces ten zostanie uproszczony po wydaniu Ice Cream Sandwich)

Obecnie jedynymi urządzeniami, które nie będą wyszukiwać sprzętu, są tablety Honeycomb. Tak, za pomocą android:targetSdkVersion="11" (lub nowszy), dodając do swojej Fragmentimplements OnQueryTextListener lub Activity, a następnie dodając coś jak:

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.notebooks_menu, menu); 
    final SearchView sv = new SearchView(getActivity()); 
    sv.setOnQueryTextListener(this); 
    menu.findItem(R.id.search_notebooks).setActionView(sv); 
} 

Będziesz zasadniczo rozwiązać problem. Teraz, aby uruchomić go na urządzeniach pre-Honeycomb, konieczne może być użycie compatibility library lub użycie odbicia lub innych osłon w kodzie.

EDIT

Samsung Galaxy S II nie posiada dedykowany przycisk wyszukiwania sprzętu, ale jeśli trzymania przycisku menu w dół przez kilka sekund, rozpocznie działającą jako przycisk wyszukiwania sprzętu.

+0

Masz rację, tablety o strukturze plastra miodu nie mają przycisku wyszukiwania sprzętu. Ani nowy Samsung Galaxy SII. Myślę, że to smutne widzieć, że firmy robią własne zwroty na swoich urządzeniach. To jeszcze bardziej utrudnia obsługę wszystkich urządzeń z Androidem. Galaxy 10.1 ma nawet dedykowany przycisk ekranu, który uważam za dziwny. Najlepszym rozwiązaniem jest prawdopodobnie wdrożenie menu zawierającego przycisk wyszukiwania, o którym wspomniałeś, to oczywiście będzie działać na wszystkich urządzeniach, przynajmniej tych wyposażonych w przycisk menu (które, jak sądzę, mają wszystkie urządzenia z Androidem). Dzięki za wejście. – ScratchMyTail

+1

Proszę zobaczyć moją edycję o przycisku menu SGS2 staje się wyszukiwanie. Zgadzam się, że nie jest to * świetne * (ale nie można ich winić za próbę innowacji), gdy producenci sprzętu wyciągają takie rzeczy, ponieważ łamie to co najmniej oczekiwania użytkowników i deweloperów. –

+0

Dzięki Jon. Btw myślę, że biblioteka wsparcia nie pochodzi z SearchView. Dlatego musimy użyć domyślnego okna wyszukiwania w starszych pakietach SDK. Oto [dokumentacja] (http://developer.android.com/training/search/backward-compat.html). –

Powiązane problemy