Kotlin如何实现EditText输入内容实时同步显示到TextView
Kotlin实现Android端EditText输入内容实时同步到TextView
核心实现逻辑是给EditText绑定系统自带的文本变化监听器TextWatcher,不需要额外触发按钮,输入过程中每次内容变动都会触发对应回调,直接把最新文本赋值给TextView即可。
- 第一步:在布局文件中定义两个目标控件,示例代码如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="16dp"> <EditText android:id="@+id/et_input" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入要同步的内容" android:inputType="text" /> <TextView android:id="@+id/tv_display" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="24dp" android:textColor="@android:color/black" android:textSize="18sp" /> </LinearLayout>
- 第二步:在对应的Activity/Fragment中初始化控件,添加文本监听,示例Kotlin代码如下:
import android.text.Editable import android.text.TextWatcher import android.widget.EditText import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import android.os.Bundle class MainActivity : AppCompatActivity() { private lateinit var etInput: EditText private lateinit var tvDisplay: TextView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // 绑定控件 etInput = findViewById(R.id.et_input) tvDisplay = findViewById(R.id.tv_display) // 添加文本变化监听 etInput.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {} override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { // 实时将输入内容赋值给TextView tvDisplay.text = s } override fun afterTextChanged(s: Editable?) {} }) } }
- 可选优化点:
- 如果项目接入了ViewBinding,直接通过Binding类获取控件实例即可,不需要手动调用
findViewById,代码更安全简洁。 - 需要处理空输入场景时,可以在
onTextChanged回调中加判断,输入为空时给TextView设置默认提示文案。 - 不要在
TextWatcher的回调中主动修改EditText的文本内容,否则会触发循环回调导致卡顿甚至崩溃。
- 如果项目接入了ViewBinding,直接通过Binding类获取控件实例即可,不需要手动调用
内容的提问来源于stack exchange,提问作者MR loo
相关产品推荐
相关产品推荐

