首页 > 解决方案 > 我在 Kotlin 中有一个函数并试图在 Android Studio 中使用它,但它不起作用

问题描述

如果我单击 button1,则该功能必须更改文本。 正文在这里:

 <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello World!"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

我想将文本“Hello World”更改为我的函数中的文本:

    fun aufruf() {
        val items = mutableListOf<BisHunterMarksman>()
        items.add(BisHunterMarksman("Head", "Rattling Deadeye Hood\t", "\tThe Necrotic Wake"))
        items.add(BisHunterMarksman("Necklace", "Trailspinner Pendant\t", "\tMists of Tirna Scithe"))
    for (element in items) {
            println("${element.itemSlot}\t" + element.name + element.itemsource)
        }
    }

这必须从 fun aufruf 打印文本

 class MainActivity : AppCompatActivity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
    
            val button1 = findViewById(R.id.button) as Button
            val myTextView = findViewById(R.id.textView) as TextView
    
    
      

  button1.setOnClickListener(){
    
    

                val myText = aufruf()
                    myTextView.text = "$myText"
        }
    }

标签: androidfunctionkotlin

解决方案


您可以尝试以下方法:

fun aufruf(): String {
    val items = mutableListOf<BisHunterMarksman>()
    items.add(BisHunterMarksman("Head", "Rattling Deadeye Hood\t", "\tThe Necrotic Wake"))
    items.add(BisHunterMarksman("Necklace", "Trailspinner Pendant\t", "\tMists of Tirna Scithe"))

    var myText = ""
    items.forEach {
        myText = "$myText${it.itemSlot}\t${it.name}${it.itemSource}"
    }
    return myText
}
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    
        val button1 = findViewById(R.id.button) as Button
        val myTextView = findViewById(R.id.textView) as TextView
    
        button1.setOnClickListener(){
            val myText = aufruf()
            myTextView.text = myText
        }
    }

}

推荐阅读