我有兩個活動的應用程序,有時我需要切換活動並同時打開剛剛恢復的活動的操作欄中的搜索輸入。一切正常,除了我不能讓鍵盤出現。我的代碼的相關位低於(NB:布爾開始搜索被設置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>
正如我所說,這主要起作用,因爲當活動恢復時,動作欄搜索確實得到焦點。但是鍵盤並沒有出現,儘管(正如你可以從代碼中看到的那樣),我明確地要求了它。任何人都可以告訴我我做錯了什麼,我需要做些什麼來讓鍵盤出現?
..... Google所做的ROFL讓簡單的事情變得如此複雜,比如去Area51 – nyconing