개인공부용123 프로그래밍 블로그
[안드로이드 스튜디오] 버튼으로 팝업메뉴 호출 본문
버튼을 이용해서 팝업메뉴를 호출하는 예제입니다.
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 보이기
}
});
}
}
버튼 클릭시 메뉴가 보이게 하는 코드입니다.
위와 같이 버튼을 클릭시 팝업메뉴가 나옵니다.
'Android Studio' 카테고리의 다른 글
[안드로이드] 버튼으로 PopupMenu 실행 (1) | 2017.03.16 |
---|---|
[안드로이드] AppCompatActivity 타이틀바 제거 (2) | 2017.02.07 |
[안드로이드 스튜디오] View의 GONE과 INVISIBLE의 차이 (0) | 2016.12.27 |
[안드로이드 스튜디오] 이미지를 생성하고 제거하는법 (0) | 2016.12.27 |
[안드로이드 스튜디오] 쓰레드 -2- (0) | 2016.11.10 |