startActivity(intent)で画面遷移できず沼りまくったのでメモ
Android 超初心者が画面遷移で沼ったので忘備録
MainActivity.kt のコードはちゃんと書いていた
MainActivity.kt
// ボタンクリックで画面遷移
val mBtn = findViewById<Button>(R.id.btn_1)
mainBtn.setOnClickListener{
val intent = Intent(this, MainActivity2::class.java)
startActivity(intent)
}
idも一致させていて、アラートとか一切出ていなかった。(デバッグも)
もちろんimport android.content.Intent
もちゃんと書いてた。
ただボタンを押すとアプリが強制終了する、なぜ?
Bottom Navigation Views Activity の初期コードのせいだった
MainActivity(遷移元) は [Empty Views Activity] で作ってたが、MainActivity2(遷移先) は [Bottom Navigation Views Activity] で作っていた。
MainActivity2 を生成した際、初期から入っているコードが干渉してたぽい
以下ソースの// ここから
~// ここまで
部分をコメントアウトすることで無事に画面遷移できた。
MainActivity2.kt
package com.example.gominohi
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.TextView
import android.content.Intent
import com.google.android.material.bottomnavigation.BottomNavigationView
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.findNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.setupActionBarWithNavController
import androidx.navigation.ui.setupWithNavController
import com.example.gominohi.databinding.ActivityMain2Binding
class MainActivity2 : AppCompatActivity() {
private lateinit var binding: ActivityMain2Binding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
// ここから
binding = ActivityMain2Binding.inflate(layoutInflater)
setContentView(binding.root)
val navView: BottomNavigationView = binding.navView
val navController = findNavController(R.id.nav_host_fragment_activity_main2)
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
val appBarConfiguration = AppBarConfiguration(
setOf(
R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications
)
)
setupActionBarWithNavController(navController, appBarConfiguration)
navView.setupWithNavController(navController)
// ここまで
}
}
初期で書いてくれてるコードを強引にコメントアウトしたけど、結局ナビゲーションビューの設定組むときに画面遷移できなくなりそう😢
初心者はまず [Empty Views Activity] で勉強してから他のActivityを使うようにしたほうがいいんだと大変勉強になりました。