1

我从 Android Studio 开始,我想制作一个简单的应用程序,将按下的按钮的文本写入文本。问题是我无法从 onClick 事件中获取源代码。这是我的kt文件:

fun buttonClick(view: View){
    //textet.text = ¿?
}

这里的xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<TextView
    android:id="@+id/textet"
    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" />

<Button
    android:id="@+id/buleriaButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="27dp"
    android:layout_marginTop="28dp"
    android:layout_marginEnd="100dp"
    android:background="#CDDC39"
    android:onClick="buttonClick"
    android:text="Buleria"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<Button
    android:id="@+id/sanmiguelButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="33dp"
    android:layout_marginTop="28dp"
    android:layout_marginEnd="152dp"
    android:background="#A86868"
    android:onClick="buttonClick"
    android:text="SanMiguel"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="@+id/buleriaButton"
    app:layout_constraintTop_toTopOf="parent" />

<Button
    android:id="@+id/allevoyButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="37dp"
    android:layout_marginTop="29dp"
    android:layout_marginEnd="27dp"
    android:onClick="buttonClick"
    android:text="Allevoy"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="@+id/sanmiguelButton"
    app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

我想访问我单击的按钮的属性“文本”以将其写入“文本”。

4

1 回答 1

0

您应该尝试as在检查是否是按钮类型后使用运算符将​​函数参数中的视图转换为 Button,以防其他视图使用 访问相同的函数is,然后从中获取文本,如下所示:-

fun buttonClick(view: View){
       val button : Button = view as Button
       textet.text = button.text
    }
于 2020-07-26T19:03:44.320 回答