본문 바로가기
Android프로그래밍/오늘의 공부

[Android]PopUpMenu 생성하기

by 둥둥동동# 2022. 5. 8.
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
반응형

댓글