2011-09-01 45 views
9

我需要幫助瞭解如何檢查設備是否配備搜索硬件按鈕。這可能嗎?檢查Android設備是否有搜索硬件按鈕

編輯:我說的是查找設備是否有搜索硬件按鈕。簡單的問題。每個Android設備都有一組硬件按鈕;菜單,主頁按鈕,後退按鈕和搜索按鈕。但是一些設備只配備了其中的一些,而不是全部。

編輯2:我之所以問,是因爲我想在我的用戶界面中顯示一個軟件按鈕,如果設備不是配有硬件按鈕。我正在使用我的活動中的searchable界面。我沒有遵循EditText/TextField方法。

+0

如果我不會錯,你告訴關於設備搜索硬件按鈕或關於一些圖形視圖按鈕? – user370305

+0

我認爲這是Android設備的要求。 – rds

+0

並非所有設備都配有硬件按鈕。新的Galaxy Tab 10.1沒有我之前提到的那些按鈕。 – ScratchMyTail

回答

-2

你可以做usign兩種方式更好的辦法

  1. 把搜索按鈕,然後打電話給onSearchRequested();

  2. 方式二上點擊EDITTEXT把android:imeOptions="actionSearch"所以你需要
    檢查重點

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

希望這會幫助你。

+1

我不問如何讓搜索字段激活。我在問我們如何找出設備是否配備了硬件搜索功能。這個想法很簡單。如果設備沒有硬件搜索按鈕,我必須顯示一個軟件按鈕。如果它有一個硬件按鈕,我將不會顯示軟件按鈕。那是我的計劃。 – ScratchMyTail

+1

我有投票下來的答案,因爲它沒有很好的理由的問題和解決方案需要 –

1

我不認爲你需要檢測它是否實際上有一個搜索硬件按鈕。該框架將幫助你在這裏(雖然,我相信這個過程將被簡化一旦冰淇淋三明治發佈)

目前,唯一沒有硬件搜索的設備是蜂窩片。因此,通過使用android:targetSdkVersion="11"(或更高版本),將implements OnQueryTextListenerFragmentActivity,然後添加類似:

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

您將基本解決這個問題。現在,爲了使它在Honeycomb設備上工作,您可能需要使用compatibility library,或者在代碼中使用反射或其他警衛。

編輯

三星Galaxy S II並沒有專用的硬件搜索按鈕,但如果你按住菜單按鈕幾秒鐘,就開始作爲一個硬件搜索按鈕。

+0

你是對的,蜂窩片沒有搜索硬件按鈕。新的三星Galaxy SII也沒有。我認爲看到各家公司在他們的設備上做出自己的改變感到很傷心。這使它支持所有Android設備更具挑戰性。 Galaxy 10.1甚至有一個專用的截圖按鈕,我覺得很奇怪。最好的解決方案可能是實現一個包含搜索按鈕的菜單,如上所述,這當然適用於所有設備,至少那些配備了菜單按鈕的設備(我認爲所有的Android設備都有)。感謝您的輸入。 – ScratchMyTail

+1

請參閱我的關於SGS2的菜單按鈕成爲搜索的編輯。我同意,當硬件製造商拉這樣的東西時,它不是很好*(但你不能指責他們嘗試創新),因爲它至少破壞了用戶和開發者的期望。 –

+0

謝謝喬恩。順便說一句我認爲支持庫不與SearchView一起。所以我們需要在舊SDK中使用默認搜索對話框。這裏是[文檔](http://developer.android.com/training/search/backward-compat.html)。 – 2012-11-27 03:01:49

相關問題