menu.xml은 다음과 같다(자바로 할때랑 마찬가지)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" > <!-- 액션 버튼으로써 나타나는 "검색" 아이템 --> <item android:id="@+id/action_search" android:title="@string/action_favorite" android:icon="@android:drawable/ic_menu_search" app:showAsAction="ifRoom" /> <!-- 액션 버튼으로써 나타나는 "공유" 액션 아이템 --> <item android:id="@+id/action_share" android:title="@string/action_cart" android:icon="@android:drawable/ic_menu_share" app:showAsAction="ifRoom" /> </menu> menu.xml | cs |
코틀린으로 구현할 때는 방식이 좀 다르다.
아래와 같이 하면 간단하게 구현한다.
구글링하면 다른 방법으로 한 것들도 많이 발견된다. 뭐가 베스트인지는 모르겠다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } //액션버튼 메뉴 액션바에 집어 넣기 override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.menu, menu) return true } //액션버튼 클릭 했을 때 override fun onOptionsItemSelected(item: MenuItem?): Boolean { when(item?.itemId){ R.id.action_search -> { //검색 버튼 눌렀을 때 return super.onOptionsItemSelected(item) } R.id.action_share -> { //공유 버튼 눌렀을 때 return super.onOptionsItemSelected(item) } else -> return super.onOptionsItemSelected(item) } } } MainActivity.kt | cs |
참고) 혹시 커스텀 툴바(custom toolbar)를 만들었는데 메뉴 아이템이 안들어간다면
actionbar를 설정을 안했을수도 있다. 그러면, MainActivity.kt에 다음과 같이 코드를 짜주면 된다.
액션바 코드는 타이틀을 없애주는 코드다.
1 2 3 4 5 | //참고: 커스텀 툴바 적용하기 val toolBar = find<toolbar>(R.id.toolbar) setSupportActionBar(toolBar) //참고: 타이틀 없애기 val actionBar = supportActionBar if(actionBar != null) actionBar.setDisplayShowTitleEnabled(false) | cs |
'Study > Kotlin' 카테고리의 다른 글
[Kotlin 코틀린] findViewById는 이제 끝! Kotlin Android Extension를 써보자 (0) | 2017.12.21 |
---|---|
[Kotlin 코틀린] Anko란?? (0) | 2017.12.21 |