-1

これは、解析された XML からメニューを動的に作成する関数です。物理的な戻るボタンを押すと、前のメニューに移動する必要があります。これに関する多くの記事を読みましたが、メニューに戻るための記事はまだ見つかりません。

public int create_menu(int level_n){

    int lv=level_n;


    if(flag){
        base=0;
    }
    else{
        base=lv-1;
    }
    ctr=true;
    if(e[lv].getType().equals("menu")){
        flag=false;
        subm[lv]=subm[base].addSubMenu(0, lv, 0, e[lv].getName());
        lv++;




        for(int i=0;i<noChild[lv-1];i++){
            if(e[lv+i].getType().equals("menu")){

                create_menu(lv+i);
                Log.i(TAG,"number=  "+i);
                flag=false;

            }
            else if (e[lv+i].getType().equals("action")){
                if(ctr){
                Log.i(TAG,"going to else"+e[lv].getName()+"   " +i);
                subm[lv]=subm[lv-1+i].addSubMenu(0, lv+i, 0, e[lv+i].getName());
                //Log.i(TAG,"element = "+e[lv+1].getType() );


                lv++;
                create_menu(lv);
                ctr=false;
                }

                flag=false;
            }
        }
        flag=true;

    }
    else if(e[lv].getType().equals("action")){
        if(flag==true && ctr==true)
        {
            subm[lv]=subm[base].addSubMenu(0, lv,0, e[lv].getName());
            lv++;

        }
        else if(flag==false && ctr==false){
            subm[lv]=subm[base-1].addSubMenu(0, lv, 0, e[lv].getName());
            lv++;

        }

    }

    return lv;


}
4

1 に答える 1

0

を使用KeyEventして、以下を試してください...

public boolean onKeyUp( int keyCode, KeyEvent event )
    {
        if( keyCode == KeyEvent.KEYCODE_BACK )
        {
            finish();
            return true;
        }
        return super.onKeyUp( keyCode, event );
    }
于 2012-07-30T04:29:33.630 に答える