実現したいこと
同じオプションメニューを複数の画面で使いたいので、その処理をフラグメントでやってもらいたいと思っています。オプションメニューのアイテムがクリックされたら画面に遷移したいです。そのためフラグメントでインテンをを使うといいのではと思っています。
今起きていること
エラーは出ないのですが、エミュレータで動きを確認した際、画面が遷移されていないです。
以下、メニューとアイテムが選択された時の処理しているフラグメントです。
kotlin
1package com.example.samplediabetes 2 3 4import android.content.Intent 5import android.os.Bundle 6import android.view.* 7import androidx.fragment.app.Fragment 8import android.widget.Toast 9 10 11class MenuFragment : Fragment() { 12 13 override fun onCreateView( 14 inflater: LayoutInflater, container: ViewGroup?, 15 savedInstanceState: Bundle? 16 ): View? { 17 // Inflate the layout for this fragment 18 setHasOptionsMenu(true) 19 return inflater.inflate(R.layout.fragment_menu, container, false) 20 21 } 22 23 override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { 24 super.onCreateOptionsMenu(menu, inflater) 25 inflater.inflate(R.menu.main, menu) 26 } 27 28 override fun onOptionsItemSelected(item: MenuItem): Boolean { 29 when(item?.getItemId()) { 30 R.id.weight -> { 31 val intent = Intent( activity,MainActivity::class.java) 32 startActivity(intent) 33 } 34 R.id.setting ->{ 35 val intent = Intent(activity, PersonalActivity::class.java) 36 startActivity(intent) 37 } 38 } 39 return super.onOptionsItemSelected(item) 40 } 41 42} 43 44
フラグメントからインテントを使うのは一般的ではないのでしょうか?
もし、この方法が一般的でないのならば一般的なやり方を教えていただけるととても嬉しいです。
補足情報
AndroidStudio 3.6.1
使用しているエミュレーター -> Pixel 2 API 24
buildToolsVersion:29.0.2
minSdkVersion:18
targetSdkVersion:29
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/05/26 14:02
2020/05/26 14:14