0

次のコードがありますが、onOptionItemSelected()が実行されません。誰にも届かLog.i("", "switch"); ない理由は誰にも分かりませんか?

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getSupportMenuInflater().inflate(R.menu.category_menu, menu);
        Log.i("", "created menu");
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        Log.i("", "switch");
        switch (item.getItemId()) {
        case 0:
            Log.i("", "case 0");
            search = (EditText) item.getActionView();
            search.addTextChangedListener(filterTextWatcher);
            search.requestFocus();
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

        }
        return true;
    }

    private TextWatcher filterTextWatcher = new TextWatcher() {
        public void afterTextChanged(Editable s) {
        }

        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
        }

        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            Log.d("", "my search logic");
        }

    };
4

2 に答える 2

0

に実際にメニュー項目はありcategory_menuますか? onOptionsItemSelectedメニュー自体が開かれたときだけでなく、メニューの項目がタッチされたときに呼び出されます。メニュー項目がある場合は、いずれかをタッチすると、LogCat に「switch」ログ ステートメントが表示されます。

于 2012-11-17T22:18:16.820 に答える