개인공부용123 프로그래밍 블로그

[안드로이드 스튜디오] 버튼으로 팝업메뉴 호출 본문

Android Studio

[안드로이드 스튜디오] 버튼으로 팝업메뉴 호출

개인공부용123 2017. 2. 7. 22:26

버튼을 이용해서 팝업메뉴를 호출하는 예제입니다.


getMenuInflater().inflate(R.menu.option_menu, popup.getMenu())를 사용해서 리소스의 메뉴를 실제메뉴로 전개했습니다.


<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/m1"
android:title="메뉴1" />
<item
android:id="@+id/m2"
android:title="메뉴2"/>
<item
android:id="@+id/m3"
android:title="메뉴3"/>
</menu>

res > menu > option_menu.xml 내에 있는 메뉴 xml입니다.


public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu popup= new PopupMenu(getApplicationContext(), v);//v는 클릭된 뷰를 의미

getMenuInflater().inflate(R.menu.option_menu, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()){
case R.id.m1:
Toast.makeText(getApplication(),"메뉴1",Toast.LENGTH_SHORT).show();
break;
case R.id.m2:
Toast.makeText(getApplication(),"메뉴1",Toast.LENGTH_SHORT).show();
break;
case R.id.m3:
Toast.makeText(getApplication(),"메뉴1",Toast.LENGTH_SHORT).show();
break;
default:
break;
}
return false;
}
});

popup.show();//Popup Menu 보이기
}
});
}

}

버튼 클릭시 메뉴가 보이게 하는 코드입니다.




위와 같이 버튼을 클릭시 팝업메뉴가 나옵니다.