action_bar menu만들기

노지수·2022년 2월 5일
0

1. xml파일 생성

app - src - main - res - menu에 Menu리소스파일 만들기

2. 메뉴만들기(item)

// menu_main.xml

<?xml version ="1.0" encoding ="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- ActionBar -->
    <item
        android:id="@+id/menu_search"
        android:icon="@android:drawable/ic_menu_search"
        android:title="검색"
        app:showAsAction="always|withText" />

    <item
        android:id="@+id/menu_chat"
        android:icon="@android:drawable/sym_action_chat"
        android:title="채팅"
        app:showAsAction="always|withText" />

    <item
        android:id="@+id/menu_email"
        android:icon="@android:drawable/sym_action_email"
        android:title="이메일"
        app:showAsAction="ifRoom" />

    <item
        android:id="@+id/action_setting"
        android:title="세팅"
        app:showAsAction="never" />
</menu>

아이콘 생성을 위한 코드입력
아이콘모음

MainActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        //supportActionBar?.setDisplayShowTitleEnabled(false) // 타이틀바 없애기
    }

	// 메뉴아이콘 표시
    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.menu_main, menu)

        return super.onCreateOptionsMenu(menu)
        //return false // 메뉴아이콘 없애기
    }
	
    // 각 아이콘 누를때 효과(textView의 text값 바꾸기)
    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        val textView:TextView = findViewById<TextView>(R.id.textView)

        when(item?.itemId){
            R.id.menu_search -> textView.text = "검색 클릭"

            R.id.menu_chat -> textView.text = "채팅 클릭"

            R.id.menu_email -> textView.text = "이메일 클릭"

            R.id.action_setting -> textView.text = "세팅 클릭"
        }
        return super.onOptionsItemSelected(item)
    }
}

결과

첫 기본화면

이메일 아이콘 클릭시 textView변경 (Hello World! -> 채팅 클릭)

profile
프로그래밍, 개념 및 이론 기록

0개의 댓글