如何区分两个菜单项,点击在ActionBarSherlock? [英] How to distinguish two menu item clicks in ActionBarSherlock?

查看:117
本文介绍了如何区分两个菜单项,点击在ActionBarSherlock?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在与ActionBarSherlock最近,和follwing各种教程,我写了这个code增加项目操作栏

  @覆盖
公共布尔onCreateOptionsMenu(功能菜单){

    menu.add(刷新)
        .setIcon(R.drawable.ic_action_refresh)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);


    menu.add(搜索)//搜索
        .setIcon(R.drawable.ic_action_search)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
        返回true;
}
 

不过,我不知道如何区分这两个点击。

虽然我没有发现,你必须覆盖onOptionsItemSelected处理的点击,也即switch语句可以用点击来区分,但大多数教程使用项ID从thier XML的菜单。由于我不是在创造XML的菜单我怎么能分辨的点击次数没有标识。

解决方案

 私有静态最终诠释REFRESH = 1;
私有静态最终诠释SEARCH = 2;

@覆盖
公共布尔onCreateOptionsMenu(功能菜单){

    menu.add(0,刷新,0,刷新)
        .setIcon(R.drawable.ic_action_refresh)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);


    menu.add(0,搜索,0,搜索)
        .setIcon(R.drawable.ic_action_search)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
        返回true;
}

@覆盖
公共布尔onOptionsItemSelected(菜单项项){
    开关(item.getItemId()){
        情况下刷新:
            //不要刷新
            返回true;
        案例搜索:
            //做搜索
            返回true;
        默认:
            返回super.onOptionsItemSelected(项目);
    }
}
 

I have been working with ActionBarSherlock recently, and follwing various tutorials, I wrote this code to add items to Action bar

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    menu.add("Refresh")
        .setIcon(R.drawable.ic_action_refresh)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);


    menu.add("Search")// Search
        .setIcon(R.drawable.ic_action_search)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
        return true;
}

However, I dont know how to distinguish the two clicks.

Although I did find out that you have to Override onOptionsItemSelected to handle the clicks and also that a switch statement can be used to distinguish between clicks, but most tutorials use item ids from thier xml menus. Since I am not creating menus in xml how can i distinguish the clicks without ids.

解决方案

private static final int REFRESH = 1;
private static final int SEARCH = 2;

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    menu.add(0, REFRESH, 0, "Refresh")
        .setIcon(R.drawable.ic_action_refresh)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);


    menu.add(0, SEARCH, 0, "Search")
        .setIcon(R.drawable.ic_action_search)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
        return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case REFRESH:
            // Do refresh
            return true;
        case SEARCH:
            // Do search
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

这篇关于如何区分两个菜单项,点击在ActionBarSherlock?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆