Beiträge von ortech

    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.