2013-04-08 2 views
1

안드로이드에서 메뉴 버튼을 사용하여 슬라이딩 메뉴를 왼쪽에서 오른쪽으로 토글하고 싶습니다. 필자가 직면 한 문제는 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 코드 –

답변

1

오버라이드 OptionsMenu 메소드가 필요하고이 메소드가 공개 된 후, 먼저 옵션을 액티비티로 만들면 액티비티 필요가 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