解決したいこと
kotlinで簡単なtodoアプリを作っています。
そして、プラスボタンを押したら、タイトルと詳細を入力できる画面に推移できるようにしました。
ところが、仮想デバイスに反映されません。
一体何が原因なのでしょうか。
該当するソースコード
MainFragment.kt
1package com.example.todo 2 3import android.os.Bundle 4import android.view.View 5import androidx.fragment.app.Fragment 6import androidx.fragment.app.FragmentContainer 7import androidx.fragment.app.viewModels 8import androidx.navigation.Navigation.findNavController 9import androidx.navigation.fragment.findNavController 10import com.example.todo.databinding.MainFragmentBinding 11import dagger.hilt.android.AndroidEntryPoint 12 13 14@AndroidEntryPoint 15class MainFragment: Fragment(R.layout.main_fragment) { 16 private val vm: MainViewMotel by viewModels() 17 18 // ここから下を追加 19 private var _binding: MainFragmentBinding? = null 20 private val binding: MainFragmentBinding get() = _binding!! 21 22 override fun onViewCreated(view: View, savedInstanceState: Bundle?) { 23 super.onViewCreated(view, savedInstanceState) 24 this._binding = MainFragmentBinding.bind(view) 25 26 binding.fab.setOnClickListener { 27 findNavController().navigate(R.id.action_mainFragment2_to_createtodoFragment3) 28 } 29 30 } 31 32 override fun onDestroyView() { 33 super.onDestroyView() 34 this._binding = null 35 } 36}
main_fragment.xml
1<?xml version="1.0" encoding="utf-8"?> 2<androidx.constraintlayout.widget.ConstraintLayout 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 xmlns:app="http://schemas.android.com/apk/res-auto" 5 xmlns:tools="http://schemas.android.com/tools" 6 android:layout_width="match_parent" 7 android:layout_height="match_parent"> 8 9 <com.google.android.material.floatingactionbutton.FloatingActionButton 10 android:id="@+id/fab" 11 android:layout_width="wrap_content" 12 android:layout_height="wrap_content" 13 android:layout_marginEnd="16dp" 14 android:layout_marginRight="16dp" 15 android:layout_marginBottom="16dp" 16 android:clickable="true" 17 app:layout_constraintBottom_toBottomOf="parent" 18 app:layout_constraintEnd_toEndOf="parent" 19 app:srcCompat="@drawable/ic_baseline_add_24" 20 tools:ignore="VectorDrawableCompat" /> 21</androidx.constraintlayout.widget.ConstraintLayout>
コードを画像で出されてはどうしようもないです
テキストで提示しましょう
アクティビティにフラグメントを表示する処理 (NavHostFragment を配置するとか) がされてないのでは。
android:name="androidx.navigation.fragment.NavHostFragment"
であっていますか?これをどこに追加すればいいのでしょうか
すみませんどこを見たらよろしいでしょうか。
多分URL間違えていると思います。
他のサービスにも質問投稿をしたい(してしまった)
teratailでは、マルチポスト※の推奨はしていません。
やむを得ず複数のサイトに質問を投稿された場合は、質問内容にマルチポストをする理由を書き、他のサイトの投稿へのリンクを貼ってください。また、解決した際には必ずteratail及びすべての投稿に解決した旨と、どのように解決したかを記載してください。
あ、なるほど
エミュレータを複数起動してしまっていて、たまたまプロジェクト開始時に動かしたモノが前に出ているとかはありませんか。
ないです。
何度も再起動しましたし確認もしました。
失礼しました。
他の人が同じ状態を再現できるように、AndroidStudio のバージョンやプロジェクト作成からここまでの選択・変更の内容、エミュレータの各設定などの情報を追加提示されては如何でしょうか。
(ご提示の xml のファイル名などもお願いします。)
あなたの回答
tips
プレビュー
