添加一个onclick到子菜单? [英] Adding an onclick to a submenu?

查看:166
本文介绍了添加一个onclick到子菜单?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个onclick功能为我的菜单,但我想不通的ID是我的子菜单,这样我可以告诉子做什么用户点击时,就可以了。我建立了我的子菜单编程方式使用下面的code。所以,如果有人能请向我解释我是怎么知道的id是什么子菜单的每个项目我会非常AP preciate吧。

  @覆盖
公共布尔onCreateOptionsMenu(菜单菜单)
{
    MenuInflater充气= getMenuInflater();
    inflater.inflate(R.menu.mainmenu,菜单);

    子菜单的子菜单= menu.addSubMenu(0,Menu.FIRST,Menu.NONE,preferences);
    submenu.add(0,Menu.FIRST,Menu.NONE,得到最后5包);
    submenu.add(0,Menu.FIRST,Menu.NONE,获取最后10个数据包);
    submenu.add(0,Menu.FIRST,Menu.NONE,得到最后20包);
    inflater.inflate(R.menu.mainmenu,子菜单);

    返回true;
}

@覆盖
公共布尔onOptionsItemSelected(菜单项项)
{
    //处理项目选择
    开关(item.getItemId())
    {
        案例R.id.viewKML:
            viewKML();
            返回true;
        默认:
            返回super.onOptionsItemSelected(项目);
    }
}
 

解决方案

当您添加

  submenu.add(0,Menu.FIRST,Menu.NONE,得到最后5包);
 

有关add()方法的参数设置为<一个href="http://developer.android.com/reference/android/view/Menu.html#add%28int,%20int,%20int,%20java.lang.CharSequence%29">Android菜单添加方法

 公共抽象菜单项中添加(INT的groupId,诠释的itemId,诠释秩序,CharSequence的标题)
 

  

的itemId独特的项目ID。使用无如果你并不需要一个唯一的ID。

是你的菜单项的ID。它应该是唯一的。像你说的15,20,21。这个id会像机器人:ID =@ + ID / 15。当你要去检查被点击该产品将用于

例如

  @覆盖
    公共布尔onCreateOptionsMenu(功能菜单){
        MenuInflater充气= getMenuInflater();
        inflater.inflate(R.menu.main_activity_menu,菜单);

        子菜单的子菜单= menu.addSubMenu(0,Menu.FIRST,Menu.NONE,preferences);
        submenu.add(0,10,Menu.NONE,得到最后5包);
        submenu.add(0,15,Menu.NONE,获取最后10个数据包);
        submenu.add(0,20,Menu.NONE,得到最后20包);
        inflater.inflate(R.menu.main_activity_menu,子菜单);

        返回true;
    }

    @覆盖
    公共布尔onOptionsItemSelected(菜单项项){
        //处理项目选择
        开关(item.getItemId()){
        案例10:
            Toast.makeText(LoginPageActivity.this,现在+ item.getItemId(),Toast.LENGTH_SHORT).show();
            返回true;
        案例15:
            Toast.makeText(LoginPageActivity.this,现在=+ item.getItemId(),Toast.LENGTH_SHORT).show();
            返回true;
        案例20:
            Toast.makeText(LoginPageActivity.this,现在==+ item.getItemId(),Toast.LENGTH_SHORT).show();
            返回true;
        默认:
            返回super.onOptionsItemSelected(项目);
        }
    }
 

I have an onclick function for my menu but I can't figure out what the ID is for my submenu so that I can tell the submenu what to do when the user click on it. I created my submenu programmatically using the code below. So if someone could please explain to me how I know what the id is for each item of the submenu I'd greatly appreciate it.

    @Override
public boolean onCreateOptionsMenu(Menu menu)
{
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.mainmenu, menu);

    SubMenu submenu = menu.addSubMenu(0, Menu.FIRST, Menu.NONE, "Preferences");
    submenu.add(0, Menu.FIRST, Menu.NONE, "Get Last 5 Packets");
    submenu.add(0, Menu.FIRST, Menu.NONE, "Get Last 10 Packets");
    submenu.add(0, Menu.FIRST, Menu.NONE, "Get Last 20 Packets");
    inflater.inflate(R.menu.mainmenu, submenu);

    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    // Handle item selection
    switch (item.getItemId())
    {
        case R.id.viewKML:
            viewKML();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

解决方案

When you are adding

submenu.add(0, Menu.FIRST, Menu.NONE, "Get Last 5 Packets");

The parameter arrangement for add() method is Android Menu Add Method

public abstract MenuItem add (int groupId, int itemId, int order, CharSequence title)

itemId Unique item ID. Use NONE if you do not need a unique ID.

Is the id of your menu item. It should be unique. Like you say 15,20,21. This id will act like android:id="@+id/15". Is will be used when you are going to check which item is clicked

e.g

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main_activity_menu, menu);

        SubMenu submenu = menu.addSubMenu(0, Menu.FIRST, Menu.NONE, "Preferences");
        submenu.add(0, 10, Menu.NONE, "Get Last 5 Packets");
        submenu.add(0, 15, Menu.NONE, "Get Last 10 Packets");
        submenu.add(0, 20, Menu.NONE, "Get Last 20 Packets");
        inflater.inflate(R.menu.main_activity_menu, submenu);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection
        switch (item.getItemId()) {
        case 10:
            Toast.makeText(LoginPageActivity.this, "Now "+item.getItemId(), Toast.LENGTH_SHORT).show();
            return true;
        case 15:
            Toast.makeText(LoginPageActivity.this, "Now = "+item.getItemId(), Toast.LENGTH_SHORT).show();
            return true;
        case 20:
            Toast.makeText(LoginPageActivity.this, "Now == "+item.getItemId(), Toast.LENGTH_SHORT).show();
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }
    }

这篇关于添加一个onclick到子菜单?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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