오늘은 클릭을 했을 때 팝업메뉴를 띄어보겠다.
1. 화면 구성
TextView를 클릭했을때 메뉴창을 띄어줄 수 있도록 TextView 하나만 만들어 주었다.
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat 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">
<TextView
android:id="@+id/textView"
android:text="메뉴 버튼"
android:textSize="30dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</androidx.appcompat.widget.LinearLayoutCompat>
2. 메뉴 아이템 구성
res -> New -> Android Resource Directory -> Resource type을 menu로 설정
메뉴 아이템목록을 원하는대로 만들어준다.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/popup1"
android:title="팝업 메뉴1" />
<item
android:id="@+id/popup2"
android:title="팝업 메뉴2" />
<item
android:id="@+id/popup3"
android:title="팝업 메뉴3" />
</menu>
3. MainActivity 코드
TextView 뷰바인딩및 클릭이벤트 설정에서 textView를 클릭했을 시 메뉴창이 나타나도록 설정 후 메뉴 목록을 클릭했을 시
발생할 이벤트를 설정
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val textView: TextView = findViewById(R.id.textView)
textView.setOnClickListener {
val popUpMenu = PopupMenu(applicationContext, it).setOnMenuItemClickListener {
when (it.itemId) {
R.id.popup1 ->{
Toast.makeText(applicationContext, "1번 클릭", Toast.LENGTH_LONG).show()
return@setOnMenuItemClickListener true
}
else -> return@setOnMenuItemClickListener false
}
}
}
}
}'Android > 실습' 카테고리의 다른 글
| 안드로이드[Kotlin] 여러 개의 버튼 처리 (0) | 2024.03.27 |
|---|---|
| 안드로이드[Kotlin] 버튼 클릭 시 background 색상 변경 (0) | 2024.03.26 |
| 안드로이드 Textview 특수 문자 사용 (0) | 2024.03.23 |
| [Kotlin] viewPager2, indicator (0) | 2023.12.21 |
| [Kotlin] Retrofit2 JSON 파싱 (0) | 2023.11.28 |
댓글