Android 프로그래밍 2

본문 바로가기
사이트 내 전체검색


Android 프로그래밍 2
Android 프로그래밍 2

8. Context Menu (2) - Button

페이지 정보

작성자 관리자 댓글 0건 조회 1,863회 작성일 22-01-28 21:39

본문

8. Context Menu (2) - Button

1. 프로젝트 생성


프로젝트명 : ContextMenuTest



2. res/menu 폴더 생성


res 아래에 menu 폴더를 생성한다.



3. menu_item.xml 파일 생성


<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item

        android:id="@+id/item1"

        android:title="item1"></item>

    <item

        android:id="@+id/item2"

        android:title="item2"></item>

</menu>


4. activity_main.xml 수정


버튼으로 수정한다.


<?xml version="1.0" encoding="utf-8"?>

<androidx.constraintlayout.widget.ConstraintLayout 

    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"

    tools:context=".MainActivity">


    <Button

android:id="@+id/button1" 

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="Button1"

        app:layout_constraintBottom_toBottomOf="parent"

        app:layout_constraintLeft_toLeftOf="parent"

        app:layout_constraintRight_toRightOf="parent"

        app:layout_constraintTop_toTopOf="parent" />


</androidx.constraintlayout.widget.ConstraintLayout>



5. MainActivity.kt 수정


package kr.co.leelab.contextmenutest


import androidx.appcompat.app.AppCompatActivity

import android.os.Bundle

import android.view.ContextMenu

import android.view.MenuItem

import android.view.View

import android.widget.Button

import android.widget.Toast


class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)

        setContentView(R.layout.activity_main)

        val button1 : Button = findViewById(R.id.button1)


        button1.setOnClickListener {

            it.showContextMenu()

        }

        registerForContextMenu(button1)

    }

    override fun onCreateContextMenu(

        menu: ContextMenu?,

        v: View?,

        menuInfo: ContextMenu.ContextMenuInfo?

    ) {

        super.onCreateContextMenu(menu, v, menuInfo)

        when(v?.id) {

            R.id.button1 -> {

                menu?.setHeaderTitle("메뉴 선택")

                menuInflater.inflate(R.menu.menu_item, menu)

            }

        }

    }


    override fun onContextItemSelected(item: MenuItem): Boolean {

        when(item.itemId) {

            R.id.item1 -> {

                Toast.makeText(this, "item1 선택" , Toast.LENGTH_SHORT).show()

            }

            R.id.item2 -> {

                Toast.makeText(this, "item2 선택" , Toast.LENGTH_SHORT).show()

            }

        }

        return super.onContextItemSelected(item)

    }

}


6. 실행


버튼을 누르고 ContextMenu 를 확인한다.


1.PNG


댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.