«java.lang.ClassCastException: android.widget.Button[] невозможно привести к android.widget.Button». Я обнаружил эту проJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 «java.lang.ClassCastException: android.widget.Button[] невозможно привести к android.widget.Button». Я обнаружил эту про

Сообщение Anonymous »

java.lang.ClassCastException: android.widget.Button[] невозможно привести к android.widget.Button в «com.calculator_app.MainActivity.onCreate$lambda$0(MainActivity.kt:60)»
it особенно упомянув строку номер #60. я проверил, но не понял проблемы.
вот мой основной код активности, я разрабатываю калькулятор, где я использовал множество кнопок на экране xml

Код: Выделить всё

package com.calculator_app

import android.annotation.SuppressLint
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat

class MainActivity : AppCompatActivity() {
@SuppressLint("WrongViewCast", "CutPasteId", "SetTextI18n")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContentView(R.layout.activity_main)

// Numer of Calculator
val one = findViewById(R.id.one)
val two = findViewById(R.id.two)
val third = findViewById(R.id.three)
val fourth = findViewById(R.id.four)
val five = findViewById(R.id.five)
val six = findViewById(R.id.six)
val seven = findViewById(R.id.seven)
val eight = findViewById(R.id.eight)
val nine = findViewById(R.id.nine)
val zero = findViewById(R.id.zero)
val dot = findViewById(R.id.dot)

//Maths
val mul = findViewById(R.id.multiply)
val plus = findViewById(R.id.plus)
val minus = findViewById(R.id.minus)
val divide = findViewById(R.id.divide)
//Result
val resultMenu = findViewById(R.id.resultMenu)
val answer = findViewById(R.id.answer)
val AllClear = findViewById(R.id.allclear)

var firstNum :Double = 0.0
var secondNum :Double = 0.0
var operator :String = ""

var isNewOperator:Boolean=true

val buttons = arrayOf(one,two,third,fourth,five,six,seven,eight,nine,zero,dot)

for(button in buttons){
button.setOnClickListener(){
if(isNewOperator){
resultMenu.text =""
isNewOperator=false

}
val currentText = resultMenu.text.toString()
val buttonText = (buttons as Button).text.toString()  // this line num 60

resultMenu.text = currentText + buttonText
}
}

// Operation button clicks
plus.setOnClickListener {
firstNum = resultMenu.text.toString().toDouble()
operator = "+"
isNewOperator = true
}

minus.setOnClickListener {
firstNum = resultMenu.text.toString().toDouble()
operator = "-"
isNewOperator = true
}

mul.setOnClickListener {
firstNum = resultMenu.text.toString().toDouble()
operator = "x"
isNewOperator = true
}

divide.setOnClickListener {
firstNum = resultMenu.text.toString().toDouble()
operator = "%"
isNewOperator = true
}

//        AC and Equal utton

answer.setOnClickListener(){
secondNum = resultMenu.text.toString().toDouble()

val result = when (operator){
"+" -> firstNum + secondNum
"-" -> firstNum - secondNum
"x" -> firstNum * secondNum
"%" -> if (secondNum != 0.0)firstNum / secondNum else {"Error"}

else -> "Error"
}

resultMenu.text = result.toString()
isNewOperator =  true
}

AllClear.setOnClickListener(){
resultMenu.text ="0"
firstNum = 0.0
secondNum = 0.0
operator = ""
isNewOperator = true
}

}
}
Я разрабатываю цифровой калькулятор.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -to-androi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»