为什么 TextView 的 setText 在 kotlin 的 android studio 中不起作用?
why doesn't setText of TextView work in android studio in kotlin?
我在 android studio 中发现 TextView 的 setText 不起作用。看下一个代码。我希望如果在 nextCode 中单击追加按钮,textView 中的文本将更改为 editText.text.toString()。但不会改变。为什么这样?
Activity.kt :
package com.example.myapplication
import android.content.Context
import android.content.Context.LAYOUT_INFLATER_SERVICE
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.AttributeSet
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.widget.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val editText = findViewById(R.id.editText) as EditText
val textView = findViewById(R.id.textView) as TextView
val button = findViewById(R.id.button) as Button
button.setOnClickListener(View.OnClickListener(){
@Override
fun onClick(view : View){
textView.setText(editText.text.toString())
}
})
}
}
activity_main.xml :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
android:id="@+id/root_layout">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="append"
android:id="@+id/button"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView"
android:text="4"/>
</LinearLayout>
您没有正确设置点击侦听器。指定
button.setOnClickListener(object : View.OnClickListener {
override fun onClick(view: View) {
textView.setText(editText.text.toString())
}
})
或 lambda 构造:
button.setOnClickListener {
textView.setText(editText.text.toString())
}
我在 android studio 中发现 TextView 的 setText 不起作用。看下一个代码。我希望如果在 nextCode 中单击追加按钮,textView 中的文本将更改为 editText.text.toString()。但不会改变。为什么这样? Activity.kt :
package com.example.myapplication
import android.content.Context
import android.content.Context.LAYOUT_INFLATER_SERVICE
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.AttributeSet
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.widget.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val editText = findViewById(R.id.editText) as EditText
val textView = findViewById(R.id.textView) as TextView
val button = findViewById(R.id.button) as Button
button.setOnClickListener(View.OnClickListener(){
@Override
fun onClick(view : View){
textView.setText(editText.text.toString())
}
})
}
}
activity_main.xml :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
android:id="@+id/root_layout">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="append"
android:id="@+id/button"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView"
android:text="4"/>
</LinearLayout>
您没有正确设置点击侦听器。指定
button.setOnClickListener(object : View.OnClickListener {
override fun onClick(view: View) {
textView.setText(editText.text.toString())
}
})
或 lambda 构造:
button.setOnClickListener {
textView.setText(editText.text.toString())
}