728x90
개요
1. XML파일을 생성해 메뉴 정의하기
2. Acitivi에서 popupMenu를 객체로 생성하기
3. 생성된 객체에 리스너 생성 및 동작 정의
4. 테스트
XML 메뉴 정의하기
res디렉토리 밑에 마우스 우클릭으로 New Menu Resource File을 눌러 메뉴 XML파일을 생성해 줍니다
저는 popupmenu이름으로 생성하겠습니다
메뉴를 구성할 item을 정의했습니다
public void onClick(View view){
PopupMenu popupMenu = new PopupMenu(this, view);
popupMenu.getMenuInflater().inflate(R.menu.popupmenu, popupMenu.getMenu());
//xml -> 자바객체 후 popupMenu에 붙인다 popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
switch(menuItem.getItemId()){
case R.id.menuSearch:
Toast.makeText(MainActivity.this, "Search", Toast.LENGTH_SHORT).show();
return true;
case R.id.menuAdd:
Toast.makeText(MainActivity.this, "Add", Toast.LENGTH_SHORT).show();
return true;
case R.id.menuShare:
Toast.makeText(MainActivity.this, "Search", Toast.LENGTH_SHORT).show();
return true;
default:
return false;
}
}
});//콜백 정의
popupMenu.show();
}
|
cs |
Main Activity에서 Inflater를 통해 메뉴 객체를 생성해 줍니다
생성된 객체에 setOnMenuItemClickListener로 리스너를 달아 메뉴가 클릭되었을 때 동작을 정의합니다
728x90
반응형
'Android프로그래밍 > 오늘의 공부' 카테고리의 다른 글
[Android]DatePicker, TimePicker Dialog생성하기(날짜,시간 선택상자) (0) | 2022.05.10 |
---|---|
[Android]could not install Gradle distribution from 에러 해결방법 (0) | 2022.05.09 |
[Android] 대화상자(Alter Dialog) 띄우기 (0) | 2022.05.04 |
[Android] 메뉴 생성하기 (0) | 2022.05.02 |
[Kotlin] findViewById 전역변수 선언시 오류의 원인 (0) | 2021.02.03 |
댓글