2013-04-08 118 views
1

我想使用android上的菜單按鈕使滑動菜單從左至右切換。我面對的問題是,因爲我在create方法的主要活動中使用了滑動菜單功能,所以我不會如何在onPrepareOptionMenu方法中使用相同的變量。滑動菜單切換選項

SlidingMenu menu; 
    menu = new SlidingMenu(this); 
    menu.setMode(SlidingMenu.LEFT); 
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); 
    menu.setShadowWidth(10); 
    menu.setBehindOffset(60); 
    menu.setFadeDegree(0.25f); 
    menu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW); 
    menu.setBehindWidth(400); 
    menu.setMenu(R.layout.menu_frame); 

這是我用來調用滑動菜單,但是,我想啓用切換按鈕,只要將菜單按鈕的旁邊稱爲滑動手勢的代碼。

public boolean onPrepareOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.activity_main, menu); 
    //try to enable the toggle here so that the sliding menu can appear/disappear 
    return true; 
} 

的問題是,不像大多數情況下,我不延長我與福爾摩斯活動主類,因爲我的主類已經擴展了一些其他活動。因此,我以構造函數的形式使用滑動菜單(查看我的示例)。我不知道如何整合切換功能。感謝所有幫助

+0

發佈menu_frame xml和activity_main xml代碼 – 2013-04-08 09:21:42

回答

1

如果您需要覆蓋OptionsMenu方法並且希望此方法公開您的Activity,那麼您首先創建Activity到Options菜單,並且在您的活動中需要擴展CustomOptionMenuActivity。 舉例: 1.創建CustomOptionMenuActivity:

public class CustomOptionMenuActivity extends Activity { 
    private Menu SlidingMenu; 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     this.SlidingMenu = menu; 
     return true; 
    } 

    public boolean onPrepareOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.activity_main, menu); 
     //try to enable the toggle here so that the sliding menu can appear/disappear 
     return true; 
    } 
} 

然後你可以使用菜單中的任何活動,但你需要擴展了這個活動。 例如:

public class MainActivity extends CustomOptionMenuActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
    } 
} 

祝你好運!

+0

謝謝,:),我做了類似的方式。 :) – Mikelbstek 2013-04-09 03:56:51