context_menu만들기
context_menu_main
1. xml파일 만들기
app - src - main - res - menu에 Menu리소스파일 만들기
2. 메뉴목록 만들기
// context_menu_main.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/text_color"
android:title="글자색 변경"/>
<item
android:id="@+id/text_back_color"
android:title="배경색 변경"/>
<item
android:id="@+id/text_basic"
android:title="초기화"/>
</menu>
build.gradle(:app)
buildFeatures{
viewBinding true
}
객체화 시키기 위한 코드작성 (오른쪽 위 sync now 꼭 눌러주기)
MainActivity
class MainActivity : AppCompatActivity() {
val binding by lazy { ActivityMainBinding.inflate(layoutInflater) }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
registerForContextMenu(binding.textView)
}
// ContextMenu 생성
override fun onCreateContextMenu(menu: ContextMenu?, v: View?, menuInfo: ContextMenu.ContextMenuInfo?) {
menuInflater.inflate(R.menu.context_menu_main, menu)
}
// 각 메뉴 선택 시 효과
override fun onContextItemSelected(item: MenuItem): Boolean {
val textView = findViewById<TextView>(R.id.textView)
when(item?.itemId){
R.id.text_color -> {
textView.text = "글자색 파란색으로 변경" // textView의 text를 변경
textView.setTextColor(Color.BLUE) // 글자색을 파란색으로
}
R.id.text_back_color -> {
textView.text = "배경색 빨간색으로 변경" // textView의 text를 변경
textView.setBackgroundColor(Color.RED) // 배경색을 빨간색으로
}
R.id.text_basic -> { // 초기상태로 되돌리기
textView.text = "contextMenu 보기"
textView.setBackgroundColor(Color.WHITE)
textView.setTextColor(Color.GRAY)
}
}
return super.onContextItemSelected(item)
}
}
결과
실행 시 초기화면
꾹 누르면 메뉴노출
배경색 변경 선택 시 효과
Author And Source
이 문제에 관하여(context_menu만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kucx1230/contextmenu만들기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)