У меня есть приложение с двумя действиями, а иногда мне нужно переключать активность и в то же время открывать вход поиска на панели действий только что возобновленной деятельности. Все работает отлично, за исключением того, что я не могу заставить клавиатуру подняться. Соответствующие биты моего кода ниже (NB: булево startsearch устанавливается true
в результате переключения деятельности, если требуется вход поиска):Android-клавиатура не появляется, даже если явно запрошено
public class MyActivity extends Activity {
private InputMethodManager imm;
public boolean startsearch;
private MenuItem DestinationTxt;
private SearchView mySearchView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// various initialisation, and then:
startsearch = false;
imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.action_menu, menu);
DestinationTxt = menu.findItem(R.id.actionbar_search);
mySearchView = (SearchView)DestinationTxt.getActionView();
// more menu create stuff appears here
}
@Override
public void onResume() {
super.onResume();
if (startsearch) {
DestinationTxt.expandActionView();
imm.showSoftInput(mySearchView, 0);
}
}
}
и соответствующий бит action_menu.xml является
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/actionbar_search"
android:orderInCategory="1"
android:showAsAction="always|withText|collapseActionView"
android:actionViewClass="android.widget.SearchView"
android:icon="@drawable/earth_2508858_search_en"
android:inputType="textPostalAddress"
android:voiceSearchMode="showVoiceSearchButton|launchRecognizer"></item>
</menu>
Как я уже говорил, это в основном работает, потому что поиск в строке поиска помогает сосредоточиться при возобновлении действия. Но клавиатура не появляется, хотя (как вы можете видеть из кода), я явно запросил ее. Может ли кто-нибудь сказать мне, что я делаю неправильно, и что мне нужно сделать, чтобы заставить клавиатуру подняться?
..... Что делает ROFL от Google, делает простую вещь настолько сложной, как переход на Area51 – nyconing