Я разрабатываю проект Android с Kotlin
Я хотел бы получить значения x и y вне слушателя и вывести значение умножения на textview gpa1, но они не изменились
class sem1gpaactivity : AppCompatActivity(){
var x:Int=0
var y:Double=0.0
var z:Double=0.0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.sem1gpa)
val firstterm01 = arrayOf("0", "1", "2", "3", "4", "5", "6", "7", "8")
val spinner = findViewById<View>(R.id.spinnerfirsttermh1) as Spinner
val spinnerArrayAdapter = ArrayAdapter(this,
android.R.layout.simple_spinner_item, firstterm01)
spinnerArrayAdapter.setDropDownViewResource
(android.R.layout.simple_spinner_dropdown_item) // The drop down view
spinner.adapter = spinnerArrayAdapter
spinner.spinnerfirsttermh1!!.onItemSelectedListener = object :
AdapterView.OnItemSelectedListener {
override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3:
Long) {
when (p2){
0-> x=0
1-> x=1
2-> x=2
3-> x=3
4-> x=4
5-> x=5
6-> x=6
7-> x=7
8-> x=8
}
}
override fun onNothingSelected(p0: AdapterView<*>?) {}
}
val firstterm02 = arrayOf("A", "A-", "B+", "B", "B-", "C+", "C", "C-", "D+", "D", "F")
val spinner1 = findViewById<View>(R.id.spinnerfirsttermh11) as Spinner
val spinnerArrayAdapter1 = ArrayAdapter(this, android.R.layout.simple_spinner_item, firstterm02)
spinnerArrayAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) // The drop down view
spinner1.adapter = spinnerArrayAdapter1
spinner1.spinnerfirsttermh11!!.onItemSelectedListener = object :
AdapterView.OnItemSelectedListener {
override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int,
p3: Long) {
val spinnerLanguage2 = spinner1.getSelectedItem().toString()
when (p2){
0-> y=4.0
1-> y=3.7
2-> y=3.3
3-> y=3.0
4-> y=2.7
5-> y=2.3
6-> y=2.0
7-> y=1.7
8-> y=1.3
9-> y=1.0
10-> y=0.0
}
}
override fun onNothingSelected(p0: AdapterView<*>?) {}
}
z=x*y
gpa1.text = z.toString()
}}
z приводит к нулю, потому что x и y не изменены, и текстовое представление показывает 000, я пытался поместить текстовый код в забавный в слушателе первого счетчика и показать только x, это работает, но когда я помещаю текстовый код вне слушателя, это ничего не показывает