主な活動にアクセスしようとすると、アプリケーションがクラッシュ:別のアクティビティに
val turminha : Turma = this.abrirArquivo()
recycler_view.layoutManager = LinearLayoutManager(this)
recycler_view.adapter = AlunoAdapter(this,turminha.alunos)
floatingActionButton.setOnClickListener({
val i = Intent(this, ActivityAddAluno::class.java)
i.putExtra("turma", turminha)
startActivity(i)
})
ActivityAddAluno
class ActivityAddAluno : AppCompatActivity() {
var i = getIntent()
private var turma = i.getSerializableExtra("turma") as Turma
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_add_aluno)
mBtnSalvarAluno.setOnClickListener{
var name = mEdtNomeAluno.text.toString()
var matricula = mEdtMatriculaAluno.text.toString()
toast("Nome: $name \n," +
"Matricula: $matricula")
turma.addAluno(Aluno(name, matricula))
}
}
クラスAluno クラスAluno:直列化{
var disciplinas: ArrayList<Disciplina>? = null
private set
var nome: String? = null
var matricula: String? = null
constructor() {
disciplinas = ArrayList()
}
constructor(nome: String, matricula: String) {
this.nome = nome
this.matricula = matricula
disciplinas = ArrayList()
}
クラスTurma
class Turma() : Serializable {
val alunos: ArrayList<Aluno>
init {
alunos = ArrayList()
}
fun addAluno(aluno: Aluno) {
alunos.add(aluno)
}
フロートボタンでTurmaオブジェクトを渡している他のアクティビティにアクセスしようとすると、アプリケーションが機能しなくなります。
var i = getIntent()
private var turma = i.getSerializableExtra("turma") as Turma
はlogcat::
FATAL EXCEPTION: main
Process: com.example.thial.estudandokotlin, PID: 3428
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.thial.estudandokotlin/com.example.thial.estudandokotlin.ActivityAddAluno}:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.Serializable android.content.Intent.getSerializableExtra(java.lang.String)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2548)
どのように私はこの問題を解決することができますLogcatは、問題は、コードの一部であると言いますか?
可能な複製である
(ヨシュアが述べた通り)/218384/what-is-a-nullpointレセプションと方法-i-fix-it) – Joshua
javaのnullpointerについてのこの説明は私の場合を解決しません。この問題がどこで起こっているのか分かりません。教えてください。 –
'var i = getIntent()'はヌル可能です。それが理由です。 'i'が' null'のときは 'i.getSerializableExtra(" turma ")を呼び出します。それはエラーで言った。 – Joshua