2011-09-01 10 views
9

Bir cihazın arama donanım düğmesiyle donatılıp donatılmadığını nasıl kontrol edeceğinizi öğrenmek için yardıma ihtiyacım var. Mümkün mü?Android cihazda arama donanım düğmesi var mı kontrol edin

DÜZENLEME: Cihazın arama donanım düğmesine sahip olup olmadığını bulmaktan bahsediyorum. Basit soru. Her bir android cihazın bir dizi donanım düğmesi vardır; menü, ana sayfa düğmesi, geri düğmesi ve arama düğmesi. Ancak bazı cihazlar sadece bazıları ile değil, hepsi ile donatılmıştır.

DÜZEN 2: Sorduğum nedeni, aygıtının bir donanım düğmesiyle donatılmış değilse, UI'mde bir yazılım düğmesi olmasını istiyorum. Etkinliğimde searchable arabirimini kullanıyorum. EditText/TextField yaklaşımını takip etmiyorum. Eğer usign yapmak iki yolu olabilir

+0

Yanlış gitmiyorsam, aygıt arama donanım düğmesi veya bazı grafik görünüm düğmeleri hakkında bilgi verdiniz mi? – user370305

+0

Android cihazlar için bir gereklilik olduğunu düşündüm. – rds

+0

Tüm cihazlarda donanım düğmeleri yoktur. Yeni Galaxy Tab 10.1'in daha önce bahsettiğim düğmelerden hiçbiri yok. Donanım Menüsünü kontrol etmek için – ScratchMyTail

cevap

-2

iyi yolu

  1. arama butonu koyup EditText tıklayın üzerindeki onSearchRequested();

  2. İkinci yol çağrısı android:imeOptions="actionSearch" böylece anahtar

    için
    çek gerek koymak
    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; 
        } 
    }); 
    

Umut bu size yardımcı olacaktır.

+1

için arama yapamazsınız arama motorunu nasıl aktif edeceğimi sormuyorum. Bir cihazın bir donanım aramasıyla donatılıp donatılmadığını nasıl bulabileceğimizi soruyorum. Fikir basit. Cihazda bir donanım arama düğmesi yoksa, bir yazılım düğmesi göstermeliyim. Bir donanım düğmesine sahipse, yazılım düğmesini göstermeyeceğim. Bu benim planım. – ScratchMyTail

+1

Cevabı oyladım çünkü soru ve gerekli çözümü haklı çıkarmıyor –

1

Aslında bir arama donanım düğmesi olup olmadığını algılamanız gerektiğini sanmıyorum. Çerçeve burada size yardımcı olacaktır (ancak Ice Cream Sandwich piyasaya sürüldüğünde bu sürecin basitleştirileceğine eminim)

Şu anda, donanım aramasına sahip olmayan tek cihazlar Honeycomb tabletlerdir. Yani, bir şey sizin Fragment veya Activity için implements OnQueryTextListener ekleyerek android:targetSdkVersion="11" (veya üstü) kullanarak ve sonra ekleyerek gibi:

@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); 
} 

Sen aslında sorunu çözecektir. Şimdi, Honeycomb öncesi cihazlarda çalışmak için, compatibility library'u kullanmanız veya kodunuzdaki yansımayı veya başka korumaları kullanmanız gerekebilir.

Samsung Galaxy S II DÜZENLEME özel bir donanım arama düğmesi yoksa, ancak birkaç saniye basılı menü düğmesini basılı bile, bir donanım arama düğmesi olarak hareket başlayacaktır.

+0

Doğru, Honeycomb tabletleri arama donanım düğmesine sahip değil. Yeni Samsung Galaxy SII de öyle değil. Şirketlerin kendi cihazlarında kendi twistlerini yaptığını görmek çok üzücü. Tüm Android cihazlarını desteklemeyi daha da zorlaştırıyor. Galaxy 10.1'in bile garip bulduğum özel bir ekran görüntüsü düğmesi var. En iyi çözüm muhtemelen bahsettiğiniz arama butonunu içeren bir menü uyguluyor, bu elbette tüm cihazlarda çalışacaktır, en azından menü butonu ile donatılmış olanlar (tüm Android cihazların sahip olduğunu düşünüyorum). Giriş için teşekkürler. – ScratchMyTail

+1

Lütfen, SGS2'nin menü düğmesiyle ilgili düzenlemeye bakın. Donanım üreticileri bu gibi şeyleri çekerken, en iyi şekilde kullanıcı ve geliştirici beklentilerini kırdığı için * büyük * olmadıklarını (ancak bunları yenilik yapmaya çalıştığınız için gerçekten suçlayamazsınız) katılıyorum. –

+0

Teşekkürler Jon. Btw Bence destek kütüphanesi SearchView ile gelmiyor. Dolayısıyla eski SDK'larda varsayılan arama iletişim kutusunu kullanmamız gerekiyor. İşte [belgeler] (http://developer.android.com/training/search/backward-compat.html). –