이번 시간에는 PC에서 마우스 오른쪽 누르면 나오는 메뉴 ContextMenu를 통해
바탕화면 변경하는 방법을 알아보겠습니다.
메뉴 폴더 만드는 방법과 파일 만드는 방법은 이전 포스팅에 이어서 하니 아래 링크에서 보시면 됩니다.
2022.08.23 - [안드로이드] - [안드로이드 코틀린] 옵션메뉴(OptionMenu), 서브메뉴(Sub Menu) 만드는 방법
- 설명 -
1. 메뉴에 3개의 아이템이 있습니다.
2. 각 아이템을 누르면 바탕색상을 변경합니다.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_red"
android:title="빨간 화면"/>
<item
android:id="@+id/menu_blue"
android:title="파란 화면"/>
<item
android:id="@+id/menu_green"
android:title="녹색 화면"/>
</menu>
- 설명 -
1. 컨텍스트메뉴를 호출하기 위한 TextView
2. 텍스트뷰를 길게 누르면 컨텍스트 메뉴 호출
<?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"
android:id="@+id/rootView"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="길게 눌러보세요"/>
</LinearLayout>
- 설명 -
1. registerForContextMenu
컨텍스트 메뉴 연결
1. onCreateContextMenu
컨텍스트 메뉴 화면 적용 함수
2. onContextItemSelected
메뉴 선택 시 실행되는 함수
4. 메인 코드 MainActivity.kt
class MainActivity : AppCompatActivity(){
private lateinit var rootView: LinearLayout
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
rootView = findViewById(R.id.rootView)
val textView: TextView = findViewById(R.id.textView)
textView.setOnClickListener {
Toast.makeText(applicationContext, "눌러주세요", Toast.LENGTH_SHORT).show()
}
//컨텍스트 메뉴 연결
registerForContextMenu(textView)
}//onCreate
/**
* 컨텍스트메뉴 설정
*/
override fun onCreateContextMenu(
menu: ContextMenu?,
v: View?,
menuInfo: ContextMenu.ContextMenuInfo?
) {
super.onCreateContextMenu(menu, v, menuInfo)
val inflater: MenuInflater = menuInflater
inflater.inflate(R.menu.context_menu, menu)
}
/**
* 컨텍스트메뉴 선택 기능
*/
override fun onContextItemSelected(item: MenuItem): Boolean {
when(item.itemId){
R.id.menu_red ->{
rootView.setBackgroundColor(Color.RED)
return true;
}
R.id.menu_blue ->{
rootView.setBackgroundColor(Color.BLUE)
return true;
}
R.id.menu_green ->{
rootView.setBackgroundColor(Color.GREEN)
return true;
}
else -> return false
}
}
/**
* 옵션메뉴 설정
*/
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
val inflater: MenuInflater = menuInflater
inflater.inflate(R.menu.option_menu, menu)
return true
}
/**
* 옵션메뉴 선택 기능
*/
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when(item.itemId){
R.id.item1 -> {
Toast.makeText(this, "아이템1 선택", Toast.LENGTH_SHORT).show()
return true
}
R.id.item2 -> {
Toast.makeText(this, "아이템2 선택", Toast.LENGTH_SHORT).show()
return true
}
R.id.item3 -> {
Toast.makeText(this, "아이템3 선택", Toast.LENGTH_SHORT).show()
return true
}
R.id.subItem1 -> {
Toast.makeText(this, "서브아이템1 선택", Toast.LENGTH_SHORT).show()
return true
}
R.id.subItem2 ->{
Toast.makeText(this, "서브아이템2 선택", Toast.LENGTH_SHORT).show()
return true
}
else -> return false
}
}
}
2022.08.22 - [안드로이드] - [안드로이드 코틀린] 텍스트뷰(TextView) 다양하게 꾸며보는 방법
2022.08.19 - [안드로이드] - [안드로이드 코틀린] 속성 애니메이션 (이미지를 움직이게 하는 방법)
2022.08.18 - [안드로이드] - [안드로이드 코틀린] 내가 원하는 글씨체 폰트(Font) 적용하는 방법
[안드로이드 코틀린] 텍스트뷰 TextView 클릭 시 효과(ripple)주는 방법 (0) | 2022.08.26 |
---|---|
[안드로이드 코틀린] 동적 메뉴(ActionMode) 만드는 방법 (2) | 2022.08.25 |
[안드로이드 코틀린] 옵션메뉴(OptionMenu), 서브메뉴(Sub Menu) 만드는 방법 (0) | 2022.08.23 |
[안드로이드 코틀린] 텍스트뷰(TextView) 다양하게 꾸며보는 방법 (0) | 2022.08.22 |
[안드로이드 코틀린] 속성 애니메이션 (이미지를 움직이게 하는 방법) (0) | 2022.08.19 |
댓글 영역