簡體   English   中英

如何在Android中的Sherlock ActionBar中獲取選項菜單按鈕的OnClick事件?

[英]how to get the OnClick event of Option menu button in Sherlock ActionBar in Android?

我正在使用Sherlock ActionBar並使用右上角的選項按鈕,靠近搜索圖標。 我成功為SEARCH按鈕生成onClick事件,但我在選項Button的onClick事件中遇到問題。 使用以下代碼添加按鈕:

public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
        menu.add(0, 1, 1, "Search").setIcon(R.drawable.search_icon).setActionView(R.layout.action_search).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
        menu.add(0, 2, 2, "Button").setIcon(R.drawable.menu_overflow_icon).setActionView(R.layout.action_button).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
return super.onCreateOptionsMenu(menu);
    }

對於點擊事件:

@Override
    public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) {
        switch (item.getItemId()) {
        case 1:
            search = (EditText) item.getActionView();
            search.addTextChangedListener(filterTextWatcher);
            search.requestFocus();
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
    break;
        case 2:
            Toast.makeText(ActivityScreen.this, "hit it", Toast.LENGTH_SHORT).show();


        }
        return super.onOptionsItemSelected(item);   
    }       

我在下面的圖片中顯示了我的要求。 在此輸入圖像描述

替換你的休息; switch of onOptionsItemSelected中的語句返回true;

除了答案

final static int BUTTON_ID = 2;

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    MenuItem item = menu.add(Menu.NONE, BUTTON_ID, Menu.NONE, R.string.action_option_name);
    item.setIcon(R.drawable.action_option);
    item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    return true;

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch(item.getItemId())
    {
    case BUTTON_ID:
        Toast.makeText(this, "clicked on 2", Toast.LENGTH_SHORT).show();
        return true;
    }
    return super.onOptionsItemSelected(item);
}

注意:我沒有添加MenuItem.setActionView(R.layout.action_search)。 我嘗試使用https://stackoverflow.com/a/11292843/1567588上的解決方案。 但它不起作用。 我已將GroupId和OrderId設置為Menu.None

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM