안드로이드 개발 질문/답변
(글 수 45,052)
public boolean onCreateOptionsMenu(Menu menu)
{
menu.add("Selected");
return super.onCreateOptionsMenu(menu);
}
이걸로 연습중인데 다른 버튼에서 메뉴를 누르니 다 이게 뜨더라고요
1번버튼에서 눌러서 뜨는 메뉴가 A
2번버튼에서 눌러서 뜨는 메뉴가 B
이렇게 하고싶은데
draw = (Button)findViewById(R.id.draw);
draw.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
}
버튼은 이렇게 구현했고요;
어떻게 해야하나요 ?
동적으로 메뉴를 바꾸기 위해선 onPrepareOptionsMenu 메소드를 override 하시면 됩니다.
메뉴키가 눌러졌을 때 옵션 메뉴를 띄우기 직전 항상 호출되는 메소드입니다.
예는 아래와 같습니다.
private int mKindOfMenu = 0; // A menu = 1, B menu = 2
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
menu.clear();
if (mKindOfMenu == 0) {
menu.add("Menu A");
} else if (mKindOfMenu == 1) {
menu.add("Menu B");
}
return super.onPrepareOptionsMenu(menu);
}
하시고,
Buttton1과 Button2 의 Click Listener에서 mKindOfMenu의 값을 설정해 주면 됩니다.
mButton1 = (Button) findViewById(R.id.button1);
mButton1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mKindOfMenu = 0; // 메뉴 A를 띄우기 위해 셋팅해 놓음
}
});
mButton2 = (Button) findViewById(R.id.button2);
mButton2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mKindOfMenu = 1; // 메뉴 B를 띄우기 위해 셋팅해 놓음
}
});