

Android Studioに初めから入っている、Bottom
navigationを使ってプログラミングしているんですが、FragmentからActivityへの画面遷移の方法がわかりません。

以下のようにコーディングしたところ、runするとエラーは出ないのですが、このFragmentに遷移した瞬間（DashboardFragmentに移った瞬間です）エミュレーター上でアプリが落ちてしまいます。なにか解決策はありますでしょうか？？

[code]

    class DashboardFragment : Fragment() {
        private lateinit var dashboardViewModel: DashboardViewModel
    
        override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
            dashboardViewModel =
                ViewModelProviders.of(this).get(DashboardViewModel::class.java)
            val root = inflater.inflate(R.layout.fragment_transaction, container, false)
    
            val layout: View = inflater.inflate(R.layout.activity_chat, null)
            val image: ImageView = layout.findViewById<View>(R.id.image) as ImageView
    
            val button = layout.findViewById<Button>(R.id.start)
            button.setOnClickListener{
                val intent = Intent(activity,ChatActivity::class.java)
                startActivity(intent)
            }
    
            return root
        }
    }
    
[/code]


CC BY-SA 4.0
2020-08-19T18:05:58.357
69702
2023-03-03T02:01:40.200
2020-08-20T06:05:54.920
3060
41542
question
java android android-studio kotlin
FragmentからActivityに遷移したい


具体的なエラーが示されていないのでなんともいえませんが、エラーが発生する前の行で、

[code]

    val image: ImageView = layout.findViewById<View>(R.id.image) as ImageView
    
[/code]

という呼び出しがなされています。これが動いているのであれば、エラーが発生した行についても、

[code]

    val button = layout.findViewById<Button>(R.id.start)
    
[/code]

とすると動作するかもしれません（`layout.`を追加して、`View`のメソッドを呼び出すことを示しています）。[リファレンス](https://developer.android.com/reference/android/view/View#findViewById\(int\))を見ると、`findViewById`は`View`と`Activity`の両方に定義されていることがわかります。


CC BY-SA 4.0
2020-08-20T01:53:07.623
69706
2020-08-20T01:53:07.623
7500
69702
answer