我花了很多天,但无法克服这样的挑战:我要在从主活动中按下searchview图标后打开搜索活动,但又无法获得焦点,而是不能通过后退返回主活动来弹出键盘。 主要活动和搜索活动都包含工具栏和搜索菜单。详细地,它们的代码如下:
主要活动菜单
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_search"
android:icon="@drawable/ic_search"
android:title="Search"
android:iconifiedByDefault="false"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="ifRoom|collapseActionView"/>
<!--app:showAsAction="ifRoom|collapseActionView"-->
<item android:id="@+id/action_settings"
android:title="Thu nghiem"/>
搜索活动菜单
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item android:id="@+id/search_action_search"
android:icon="@drawable/ic_search"
android:title="Search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="ifRoom|collapseActionView"/>
<item android:id="@+id/search_action_settings"
android:title="Detail"/>
在主要活动中,我尝试过
@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.example_menu, menu);
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchView.setIconified(true);
searchView.setFocusable(false);
searchView.setFocusableInTouchMode(false);
searchView.clearFocus();
return true;
}
此外,我尝试了一些不同的方法,但无法成功实现。
答案 0 :(得分:0)
使用此行来防止键盘出现在您的活动中。
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);