0

我创建了一个意图访问不同活动的菜单,但是我有一个奇怪的行为,它总是在选择语句之后遍历 switch 语句的所有情况,我已经查看了变量 item 的值并且是正确的,有什么想法可能是错的吗?

代表菜单的代码片段是:

    public static final int wiifidi = 0;
    public static final int cuentaint = 1;
    public static final int cajerosint = 2;
    public static final int indicadoresint = 3;
    public static final int promoint = 5;
    public static final int contactoint = 4;

……

……

……

@Override
    //add the items to the menu on the class
    public boolean onCreateOptionsMenu(Menu menu) {
        boolean result = super.onCreateOptionsMenu(menu);
        menu.add(0,wiifidi, 0, R.string.menu_wifi);
        menu.add(0,cuentaint, 0, R.string.menu_cuenta);
        menu.add(0,cajerosint,0,R.string.menu_cajeros);
        menu.add(0,indicadoresint,0,R.string.menu_indicadores);
        menu.add(0,contactoint,0,R.string.menu_contacto);
        menu.add(0,promoint,0,R.string.menu_promo);


        return result;
    }

    @Override
    //handle everything that happens when an item of menu is selected 
    public boolean onOptionsItemSelected(MenuItem item) {
        Toast.makeText(getApplicationContext(), "el item es " +item.getItemId(), Toast.LENGTH_LONG).show();
        switch (item.getItemId()) {     

        case wiifidi:
            wifistatus();
        case cuentaint:{
            consulta();
        }
        case cajerosint:{
            cajero();
        }
        case indicadoresint:{   
            indicador();
        }
        case contactoint:{
            contacto();
            }
        case promoint:{
            promocion();
        }

        }

        return super.onOptionsItemSelected(item);
    }
4

2 回答 2

5

记得断开你的开关。

switch (item.getItemId()) 
    {     
        case wiifidi:
            wifistatus();
            break;
        case cuentaint:
            consulta();
            break;
        case cajerosint:
            cajero();
            break;
        case indicadoresint:   
            indicador();
            break;
        case contactoint:
            contacto();
            break;
        case promoint:
            promocion();
            break;
    }
于 2012-04-13T20:31:13.060 回答
2

指定中断

 case wiifidi:
            wifistatus();
            break;
于 2012-04-13T20:30:11.823 回答