8

ActionBar から検索をアクティブにすると、この質問が SearchView EditText にフォーカスを設定するのがわかります。ただし、フォーカスを取得してもキーボードは表示されません。通常の EditText であるため、そうすべきではありませんか? (通常の EditText ですか?) この動作は、Android SDK レベル 11 で見られます (Samsung Galax Tab 7.7 とストック Android)。

現時点でonOptionsItemSelected(MenuItem item)は、Activity のメソッドに接続してキーボードを表示する回避策があります。

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        boolean menuSelectionHandeled = super.onOptionsItemSelected(item);
        // menu_search is the id of the menu item in the ActionBar
        if (item.getItemId() == R.id.menu_search) {
               mInputManager.showSoftInput(null, InputMethodManager.SHOW_IMPLICIT);
        }
        return menuSelectionHandeled;
    }

mInputManagerのインスタンスはどこにありますかInputMethodManager

ActionBar は ActionBarSherlock でビルドされており、対象デバイスが Android 3.x であるため、これが原因でしょうか? ActionBarSherlock のFAQによると:

Android 3.x のアクション バー (ハニカムとも呼ばれます) は、Android 4.x のアクション バー (Ice Cream Sandwich) のすべての機能を実装しているわけではありません。すべてのプラットフォームで完全なアクション バー API を提供し、Android のすべてのバージョンでスタイルを統一するために、カスタム実装が使用されます。

4

1 に答える 1

0

これはうまくいくはずです:

SearchView searchView = new SearchView(getContext());
searchView.setInputType(InputType.TYPE_CLASS_TEXT);
searchView.setBackgroundColor(Color.WHITE);
于 2012-12-18T17:59:47.090 に答える