안드로이드 팝업메뉴(Popup menu) 사용하기

 계발에서 개발까지 

 

 

버튼클릭으로 팝업메뉴 나타내기

버튼하나를 만들어서 클릭시 팝업메뉴를 간단하게 표시해보겠습니다. 그리고 팝업마다 클릭 이벤트를 주는 방법도 알아보겠습니다.

 

activity_main.xml

일단 사용하는 레이아웃에 버튼을 하나 만들어 줍니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btn"
        android:text="팝업메뉴"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

그리고 res 하위 폴더에 menu폴더를 만들어 줍니다.

popup.xml

 

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/action_menu1"
        android:title="메뉴 1" />
    <item
        android:id="@+id/action_menu2"
        android:title="메뉴 2" />
    <item
        android:id="@+id/action_menu3"
        android:title="메뉴 3" />

</menu>

이제 팝업메뉴 버튼클릭시 이벤트를 나타내게 한번 작성해보겠습니다.

 

MainActivity.java

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(final View view) {
                final PopupMenu popupMenu = new PopupMenu(getApplicationContext(),view);
                getMenuInflater().inflate(R.menu.popup,popupMenu.getMenu());
                popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                    @Override
                    public boolean onMenuItemClick(MenuItem menuItem) {
                        if (menuItem.getItemId() == R.id.action_menu1){
                            Toast.makeText(MainActivity.this, "메뉴 1 클릭", Toast.LENGTH_SHORT).show();
                        }else if (menuItem.getItemId() == R.id.action_menu2){
                            Toast.makeText(MainActivity.this, "메뉴 2 클릭", Toast.LENGTH_SHORT).show();
                        }else {
                            Toast.makeText(MainActivity.this, "메뉴 3 클릭", Toast.LENGTH_SHORT).show();
                        }

                        return false;
                    }
                });
                popupMenu.show();
            }
        });
    }

}

수고하셨습니다.

 

수고하셨습니다 ★

더 많은 정보

 https://deumdroid.tistory.com/ 

 

댓글

Designed by JB FACTORY