前提
kotlinの学習でアプリ作成中です。
以下サイトの通りに進めています。
https://developer.android.com/codelabs/build-your-first-android-app-kotlin#7
No.8のTask: Make your app interactiveの項目でToastを表示するところがあるのですが、ボタンタップしても何も起きない状況です。
英語のサイトを日本語に訳して実施しているため、
どこかで間違えてしまったのかもしれないですが、わからない状況です。
コードはコピーして使用しました。
実現したいこと
ボタンタップ時にToastのメッセージを表示させたい
発生している問題・エラーメッセージ
なし
該当のソースコード
package com.example.myfirstapp2 import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Button import android.widget.Toast import androidx.navigation.fragment.findNavController import com.example.myfirstapp2.databinding.FragmentFirstBinding /** * A simple [Fragment] subclass as the default destination in the navigation. */ class FirstFragment : Fragment() { private var _binding: FragmentFirstBinding? = null // This property is only valid between onCreateView and // onDestroyView. private val binding get() = _binding!! override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { _binding = FragmentFirstBinding.inflate(inflater, container, false) return binding.root } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) // find the toast_button by its ID and set a click listener view.findViewById<Button>(R.id.toast_button).setOnClickListener { // create a Toast with some text, to appear for a short time val myToast = Toast.makeText(context, "Hello Toast!", Toast.LENGTH_SHORT) // show the Toast myToast.show() } view.findViewById<Button>(R.id.random_button).setOnClickListener { findNavController().navigate(R.id.action_FirstFragment_to_SecondFragment) } binding.countButton.setOnClickListener { findNavController().navigate(R.id.action_FirstFragment_to_SecondFragment) } } override fun onDestroyView() { super.onDestroyView() _binding = null } }
試したこと
問題のボタンの中身を別のボタンと同様の以下に書き換えたところ、動作しました。
view.findViewById<Button>(R.id.toast_button).setOnClickListener { findNavController().navigate(R.id.action_FirstFragment_to_SecondFragment) }
補足情報(FW/ツールのバージョンなど)
あなたの回答
tips
プレビュー