我的 android Activity 中的 NullPointerException

问题描述 投票:0回答:1

我是 android 的新手,我遇到了这个我无法解决的错误。是计算器应用程序代码的一部分,我一直坚持下去。 它给了我一个空指针异常,在我创建监听器和视图变量之前我没有遇到任何问题。

我的代码程序是这样的:

package com.example.calculadora

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.text.Editable
import android.widget.Button
import android.widget.EditText

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        detectarEntrada()
    }

    val button0 = findViewById<Button>(R.id.button0)
    val button1 = findViewById<Button>(R.id.button1)
    val button2 = findViewById<Button>(R.id.button2)
    val button3 = findViewById<Button>(R.id.button3)
    val button4 = findViewById<Button>(R.id.button4)
    val button5 = findViewById<Button>(R.id.button5)
    val button6 = findViewById<Button>(R.id.button6)
    val button7 = findViewById<Button>(R.id.button7)
    val button8 = findViewById<Button>(R.id.button8)
    val button9 = findViewById<Button>(R.id.button9)
    val button_equal = findViewById<Button>(R.id.button_equal)
    val button_par_ab = findViewById<Button>(R.id.button_par_ab)
    val button_par_cl = findViewById<Button>(R.id.button_par_cl)
    val button_coma = findViewById<Button>(R.id.button_coma)
    val buttonAC = findViewById<Button>(R.id.buttonAC)
    val button_mul = findViewById<Button>(R.id.button_por)
    val button_div = findViewById<Button>(R.id.button_div)
    val button_sum = findViewById<Button>(R.id.button_sum)
    val button_dif = findViewById<Button>(R.id.button_dif)
    val caja = findViewById<EditText>(R.id.caja_de_texto)

    public fun imprimir(simbolo: String) {
        var texto = caja.text.toString()
        var texto_a_poner = texto + simbolo
        caja.text = Editable.Factory.getInstance().newEditable(texto_a_poner)
    }

    public fun detectarEntrada() {
        button0.setOnClickListener { imprimir("0") }
        button1.setOnClickListener { imprimir("1") }
        button2.setOnClickListener { imprimir("2") }
        button3.setOnClickListener { imprimir("3") }
        button4.setOnClickListener { imprimir("4") }
        button5.setOnClickListener { imprimir("5") }
        button6.setOnClickListener { imprimir("6") }
        button7.setOnClickListener { imprimir("7") }
        button8.setOnClickListener { imprimir("8") }
        button9.setOnClickListener { imprimir("9") }
        button_par_ab.setOnClickListener { imprimir("(") }
        button_par_cl.setOnClickListener { imprimir(")") }
        button_coma.setOnClickListener { imprimir(",") }
        button_mul.setOnClickListener { imprimir("*") }
        button_div.setOnClickListener { imprimir("/") }
        button_sum.setOnClickListener { imprimir("+") }
        button_dif.setOnClickListener { imprimir("-") }

        buttonAC.setOnClickListener {
            caja.text = Editable.Factory.getInstance().newEditable("0")
        }
    }
}

希望有人能帮助我

我在网上搜索了类似的问题,尤其是这个错误。但我不知道如何解决它。

java android kotlin nullpointerexception kotlin-null-safety
1个回答
0
投票

你应该在生命周期方法

findViewById()
onCreate()
之后调用方法
setContentView

此外,您可以使用 ViewBind 并且可以编写简单的代码,例如

binding. button0.setOnClickListener { imprimir("0")  }

希望对你有帮助

© www.soinside.com 2019 - 2024. All rights reserved.