Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin Android文本视图KotlinNullPointerException_Android_Nullpointerexception_Kotlin - Fatal编程技术网

Kotlin Android文本视图KotlinNullPointerException

Kotlin Android文本视图KotlinNullPointerException,android,nullpointerexception,kotlin,Android,Nullpointerexception,Kotlin,我决定用Kotlin编写一个小程序。现在我有一个无法解决的问题。这是由于NullPointerException造成的。日志猫总是在我写这篇文章的地方显示一个错误!!。text=“${currencyList[p2]}”。请帮帮我 这是我的密码 open class CurrencyActivity : AppCompatActivity() { open var textView_msg: TextView? = null open var textView:

我决定用Kotlin编写一个小程序。现在我有一个无法解决的问题。这是由于NullPointerException造成的。日志猫总是在我写这篇文章的地方显示一个错误!!。text=“${currencyList[p2]}”。请帮帮我

这是我的密码

open class CurrencyActivity : AppCompatActivity() {

        open var textView_msg: TextView? = null
        open var textView: TextView? = null
        open val currencyList = arrayOf("AUD","CAD","CHF","EUR","GBP","JPY","NZD","KHR","USD","CNY","THB","INR")

        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.currency_activty)
            setUpSpinnerData()
        }

        //This method will be invoked to setup data of the spinner views
        //to show lists of currency types for selection
        fun setUpSpinnerData() {
            textView_msg = findViewById(R.id.setCurrencyFrom) as TextView
            textView = findViewById(R.id.setCurrencyTo) as TextView

            val spFrom: Spinner = findViewById(R.id.fromCurrency)
            spFrom.onItemSelectedListener = ItemSelectedFrom()
            val afrom: ArrayAdapter<String> = ArrayAdapter(this, R.layout.support_simple_spinner_dropdown_item, currencyList)
            spFrom.adapter = afrom

            val spTo: Spinner = findViewById(R.id.toCurrency)
            spTo.onItemSelectedListener = ItemSelectedTo()
            val ato: ArrayAdapter<String> = ArrayAdapter(this, R.layout.support_simple_spinner_dropdown_item, currencyList)
            spTo.adapter = ato

        }

        class ItemSelectedFrom: CurrencyActivity(), AdapterView.OnItemSelectedListener {
            override fun onNothingSelected(p0: AdapterView<*>?) {}

            override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
                //textView_msg = findViewById(R.id.setCurrencyFrom) as TextView
                textView_msg!!.text = "${currencyList[p2]}"
            }
        }

        class ItemSelectedTo : CurrencyActivity(), AdapterView.OnItemSelectedListener {
            override fun onNothingSelected(p0: AdapterView<*>?) {}

            override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
                //textView = findViewById(R.id.setCurrencyTo) as TextView
                textView!!.text = "${currencyList[p2]}"
            }
        }
    }`
开放类CurrencyActivity:AppCompatActivity(){
打开var textView_msg:textView?=null
打开变量textView:textView?=null
开放式val currencyList=arrayOf(“澳元”、“加元”、“瑞士法郎”、“欧元”、“英镑”、“日元”、“新西兰元”、“库尔德”、“美元”、“人民币”、“泰铢”、“印度卢比”)
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.currency\u activty)
设置喷丝头数据()
}
//将调用此方法来设置微调器视图的数据
//显示要选择的货币类型列表的步骤
有趣的设置喷丝头数据(){
textView_msg=findViewById(R.id.setCurrencyFrom)作为textView
textView=findViewById(R.id.setCurrencyTo)作为textView
val spFrom:Spinner=findViewById(R.id.fromCurrency)
spFrom.onItemSelectedListener=ItemSelectedFrom()
val afrom:ArrayAdapter=ArrayAdapter(这个,R.layout.support\u simple\u spinner\u dropdown\u项目,currencyList)
spFrom.adapter=afrom
val spTo:Spinner=findViewById(R.id.toCurrency)
spTo.onItemSelectedListener=ItemSelectedTo()
val ato:ArrayAdapter=ArrayAdapter(此,R.layout.support\u simple\u spinner\u dropdown\u项,currencyList)
spTo.adapter=ato
}
类ItemSelectedFrom:CurrencyActivity(),AdapterView.OnItemSelectedListener{
覆盖未选择的乐趣(p0:AdapterView?{}
已选择覆盖选项(p0:AdapterView?,p1:View?,p2:Int,p3:Long){
//textView_msg=findViewById(R.id.setCurrencyFrom)作为textView
textView_msg!!.text=“${currencyList[p2]}”
}
}
类ItemSelectedTo:CurrencyActivity(),AdapterView.OnItemSelectedListener{
覆盖未选择的乐趣(p0:AdapterView?{}
已选择覆盖选项(p0:AdapterView?,p1:View?,p2:Int,p3:Long){
//textView=findViewById(R.id.setCurrencyTo)作为textView
textView!!.text=“${currencyList[p2]}”
}
}
}`

是的,我做到了。谢谢所有试图帮助我的人。我只是稍微重写了一下(但在注释中我有一段旧代码)。这是我的解决方案

class CurrencyActivity : AppCompatActivity() {

        var textView_msg: TextView ?= null
        var textView: TextView ?= null

        var currencyList = arrayOf("AUD","CAD","CHF","EUR","GBP","JPY","NZD","KHR","USD","CNY","THB","INR")

        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.currency_activty)
            setUpSpinnerData()
        }

        //This method will be invoked to setup data of the spinner views
        //to show lists of currency types for selection
        fun setUpSpinnerData() {

            val spFrom: Spinner = findViewById(R.id.fromCurrency)
            spFrom.onItemSelectedListener = onItemSelectedListener0
            val afrom: ArrayAdapter<String> = ArrayAdapter(this, R.layout.support_simple_spinner_dropdown_item, currencyList)
            spFrom.adapter = afrom

            val spTo: Spinner = findViewById(R.id.toCurrency)
            spTo.onItemSelectedListener = onItemSelectedListener1
            val ato: ArrayAdapter<String> = ArrayAdapter(this, R.layout.support_simple_spinner_dropdown_item, currencyList)
            spTo.adapter = ato

        }

        var onItemSelectedListener0: OnItemSelectedListener = object : OnItemSelectedListener {
            override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
                textView_msg = findViewById(R.id.LALALALA)
                Log.e("KUKU", currencyList[position])
                textView_msg?.text = "${currencyList[position]}"
            }

            override fun onNothingSelected(parent: AdapterView<*>) {}
        }

        var onItemSelectedListener1: OnItemSelectedListener = object : OnItemSelectedListener {

            override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
                textView = findViewById(R.id.NANANANA)
                textView?.text = "${currencyList[position]}"
            }

            override fun onNothingSelected(parent: AdapterView<*>) {}

        }

    //    class ItemSelectedFrom: CurrencyActivity(), AdapterView.OnItemSelectedListener {
    //        override fun onNothingSelected(p0: AdapterView<*>?) {}
    //
    //        override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
    //            textView_msg = findViewById(R.id.LALALALA)
    //            Log.e("KUKU", currencyList[position])
    //            textView_msg?.text = "${currencyList[position]}"
    //        }
    //    }
    //
    //    class ItemSelectedTo : CurrencyActivity(), AdapterView.OnItemSelectedListener {
    //        override fun onNothingSelected(p0: AdapterView<*>?) {}
    //
    //        override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
    //            textView = findViewById(R.id.NANANANA)
    //            textView?.text = "${currencyList[position]}"
    //        }
    //    }
    }

是的,我做到了。谢谢所有试图帮助我的人。我只是稍微重写了一下(但在注释中我有一段旧代码)。这是我的解决方案

class CurrencyActivity : AppCompatActivity() {

        var textView_msg: TextView ?= null
        var textView: TextView ?= null

        var currencyList = arrayOf("AUD","CAD","CHF","EUR","GBP","JPY","NZD","KHR","USD","CNY","THB","INR")

        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.currency_activty)
            setUpSpinnerData()
        }

        //This method will be invoked to setup data of the spinner views
        //to show lists of currency types for selection
        fun setUpSpinnerData() {

            val spFrom: Spinner = findViewById(R.id.fromCurrency)
            spFrom.onItemSelectedListener = onItemSelectedListener0
            val afrom: ArrayAdapter<String> = ArrayAdapter(this, R.layout.support_simple_spinner_dropdown_item, currencyList)
            spFrom.adapter = afrom

            val spTo: Spinner = findViewById(R.id.toCurrency)
            spTo.onItemSelectedListener = onItemSelectedListener1
            val ato: ArrayAdapter<String> = ArrayAdapter(this, R.layout.support_simple_spinner_dropdown_item, currencyList)
            spTo.adapter = ato

        }

        var onItemSelectedListener0: OnItemSelectedListener = object : OnItemSelectedListener {
            override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
                textView_msg = findViewById(R.id.LALALALA)
                Log.e("KUKU", currencyList[position])
                textView_msg?.text = "${currencyList[position]}"
            }

            override fun onNothingSelected(parent: AdapterView<*>) {}
        }

        var onItemSelectedListener1: OnItemSelectedListener = object : OnItemSelectedListener {

            override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
                textView = findViewById(R.id.NANANANA)
                textView?.text = "${currencyList[position]}"
            }

            override fun onNothingSelected(parent: AdapterView<*>) {}

        }

    //    class ItemSelectedFrom: CurrencyActivity(), AdapterView.OnItemSelectedListener {
    //        override fun onNothingSelected(p0: AdapterView<*>?) {}
    //
    //        override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
    //            textView_msg = findViewById(R.id.LALALALA)
    //            Log.e("KUKU", currencyList[position])
    //            textView_msg?.text = "${currencyList[position]}"
    //        }
    //    }
    //
    //    class ItemSelectedTo : CurrencyActivity(), AdapterView.OnItemSelectedListener {
    //        override fun onNothingSelected(p0: AdapterView<*>?) {}
    //
    //        override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
    //            textView = findViewById(R.id.NANANANA)
    //            textView?.text = "${currencyList[position]}"
    //        }
    //    }
    }

在您的应用程序中,将id名称选中为
setCurrencyFrom
xml@sushildlh我还试着把这个id换成另一个。但它向我显示了一个错误您有没有可能拼错了
currency\u activity
?有一个
i
缺失可能?@mTak nope cause当我删除这个类项目selectedFrom并将其更改为
this@MainActivity
一切正常。是否有一个名为
currency\u activity
的布局(没有i)?你换了什么this@MainActivity?在您的计算机中,将id名称检查为
setCurrencyFrom
xml@sushildlh我还试着把这个id换成另一个。但它向我显示了一个错误您有没有可能拼错了
currency\u activity
?有一个
i
缺失可能?@mTak nope cause当我删除这个类项目selectedFrom并将其更改为
this@MainActivity
一切正常。是否有一个名为
currency\u activity
的布局(没有i)?你换了什么this@MainActivity?