我需要帮助弄清楚如何检查设备是否配备了搜索硬件按钮。这可能吗?
编辑:我说的是找出设备是否有搜索硬件按钮。简单的问题。每个Android设备都有一组硬件按钮;菜单,主页按钮,后退按钮和搜索按钮。但有些设备只配备了部分设备,而不是全部。编辑2:我问的原因是因为我想在我的UI中显示一个软件按钮,如果设备不是配备了硬件按钮。我在我的活动中使用searchable界面。我没有遵循EditText / TextField方法。
答案 0 :(得分:1)
我认为你不需要检测它是否真的有搜索硬件按钮。该框架将帮助您(尽管如此,我确信一旦冰淇淋三明治发布,这个过程将会简化)
目前,唯一没有硬件搜索功能的设备是Honeycomb平板电脑。因此,使用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没有专用的硬件搜索按钮,但如果您按住菜单按钮几秒钟,它将开始充当硬件搜索按钮。
答案 1 :(得分:-2)
更好的方法是你可以采用两种方式
点击搜索按钮并致电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;
}
});
希望这会对你有所帮助。