我需要幫助瞭解如何檢查設備是否配備搜索硬件按鈕。這可能嗎?檢查Android設備是否有搜索硬件按鈕
編輯:我說的是查找設備是否有搜索硬件按鈕。簡單的問題。每個Android設備都有一組硬件按鈕;菜單,主頁按鈕,後退按鈕和搜索按鈕。但是一些設備只配備了其中的一些,而不是全部。
編輯2:我之所以問,是因爲我想在我的用戶界面中顯示一個軟件按鈕,如果設備不是配有硬件按鈕。我正在使用我的活動中的searchable界面。我沒有遵循EditText/TextField方法。
我需要幫助瞭解如何檢查設備是否配備搜索硬件按鈕。這可能嗎?檢查Android設備是否有搜索硬件按鈕
編輯:我說的是查找設備是否有搜索硬件按鈕。簡單的問題。每個Android設備都有一組硬件按鈕;菜單,主頁按鈕,後退按鈕和搜索按鈕。但是一些設備只配備了其中的一些,而不是全部。
編輯2:我之所以問,是因爲我想在我的用戶界面中顯示一個軟件按鈕,如果設備不是配有硬件按鈕。我正在使用我的活動中的searchable界面。我沒有遵循EditText/TextField方法。
你可以做usign兩種方式更好的辦法
把搜索按鈕,然後打電話給onSearchRequested();
方式二上點擊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;
}
});
希望這會幫助你。
我不問如何讓搜索字段激活。我在問我們如何找出設備是否配備了硬件搜索功能。這個想法很簡單。如果設備沒有硬件搜索按鈕,我必須顯示一個軟件按鈕。如果它有一個硬件按鈕,我將不會顯示軟件按鈕。那是我的計劃。 – ScratchMyTail
我有投票下來的答案,因爲它沒有很好的理由的問題和解決方案需要 –
我不認爲你需要檢測它是否實際上有一個搜索硬件按鈕。該框架將幫助你在這裏(雖然,我相信這個過程將被簡化一旦冰淇淋三明治發佈)
目前,唯一沒有硬件搜索的設備是蜂窩片。因此,通過使用android:targetSdkVersion="11"
(或更高版本),將implements OnQueryTextListener
您Fragment
或Activity
,然後添加類似:
@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並沒有專用的硬件搜索按鈕,但如果你按住菜單按鈕幾秒鐘,就開始作爲一個硬件搜索按鈕。
你是對的,蜂窩片沒有搜索硬件按鈕。新的三星Galaxy SII也沒有。我認爲看到各家公司在他們的設備上做出自己的改變感到很傷心。這使它支持所有Android設備更具挑戰性。 Galaxy 10.1甚至有一個專用的截圖按鈕,我覺得很奇怪。最好的解決方案可能是實現一個包含搜索按鈕的菜單,如上所述,這當然適用於所有設備,至少那些配備了菜單按鈕的設備(我認爲所有的Android設備都有)。感謝您的輸入。 – ScratchMyTail
請參閱我的關於SGS2的菜單按鈕成爲搜索的編輯。我同意,當硬件製造商拉這樣的東西時,它不是很好*(但你不能指責他們嘗試創新),因爲它至少破壞了用戶和開發者的期望。 –
謝謝喬恩。順便說一句我認爲支持庫不與SearchView一起。所以我們需要在舊SDK中使用默認搜索對話框。這裏是[文檔](http://developer.android.com/training/search/backward-compat.html)。 – 2012-11-27 03:01:49
如果我不會錯,你告訴關於設備搜索硬件按鈕或關於一些圖形視圖按鈕? – user370305
我認爲這是Android設備的要求。 – rds
並非所有設備都配有硬件按鈕。新的Galaxy Tab 10.1沒有我之前提到的那些按鈕。 – ScratchMyTail