hallo,
das ist mein 1. Thread. Hoffe ich bin hier auch richtig.
Programmiere seit vielen Jahren vb.net. Möchte nun jedoch Apps für Android (und später auch IOS) schreiben, das funktioniert mit vb.net nicht. Daher hab ich angefangen mich mit Kotlin zu beschäftigen. Vorgestern um genau zu sein.
Ich quäle mich gerade seit gestern damit in einem Timer, der pro Sekunde aufgerufen wird, um einen Text eines TextView zu ändern. Die Variable money wird pro Timeraufruf um 1 erhöht und soll im TextView txtMoney angezeigt werden.
Leider wird die findViewByID in der Timer Funktion nicht erkannt. Global kann ich die Variable auch nicht deklarieren, das wird nicht zugelassen. Wie mache ich das denn nun? Freue mich über einen Tipp.
LG Alois
package com.example.uyc_android
import android.os.Bundle
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import java.util.Timer
import java.util.TimerTask
var money=0
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val mytxt = findViewById<TextView>(R.id.txtMoney)
}
}
fun main() {
val timer = Timer()
val delay = 1L
val period = 100L
timer.scheduleAtFixedRate(object : TimerTask() {
override fun run() {
// Code, der periodisch ausgeführt werden soll
println("Timer Task is running")
money++
txtMoney.text = money.toString() //das funktiniert nicht
mytxt.text= money.toString() //und das auch nciht
}
}, delay, period)
}
Ist sicher ein dummer Anfängerfehler, auf welchen ich jedoch nciht draufkomm.