Android里面的settext作用,Android EditText setText方法踩坑实录

本文讲述了在Android开发中遇到的一个问题:从ActivityB返回ActivityA时,由于在A中使用setText更新EditText内容,意外触发了TextWatcher,导致无法正常返回。通过添加log分析执行顺序,发现setText方法会触发EditText的文本变化监听。解决办法是将setText操作放在设置监听之前,或者使用setHint方法代替。
摘要由CSDN通过智能技术生成

1、平平常常中就这样开始

某一天,我准备做一个搜索功能,这个搜索功能呢大概是在主活动A中,用EditText接收输入,当EditText监听到输入框中内容有变化,跳转到活动B中,活动B中准备有搜索历史记录等等,等在活动B中确定好搜索关键词后,跳回到活动A中,执行搜索,并显示搜索结果……一切顺顺利利,然后呢,懵逼了,我回不了活动A了。

当时的情况大致是这样的,

布局文件:activity_main.xml

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"

android:orientation="vertical"

tools:context=".ActivityA">

android:inputType="text"

android:singleLine="true"

android:imeOptions="actionSearch"

android:id="@+id/et_search"

android:textSize="24sp"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="输入点啥呗"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintLeft_toLeftOf="parent"

app:layout_constraintRight_toRightOf="parent"

app:layout_constraintTop_toTopOf="parent" />

android:textSize="24sp"

android:gravity="center"

android:layout_weight="1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="我是主活动啦"/>

活动A:AcitivityA.java

public class ActivityA extends AppCompatActivity {

private EditText searchEditText;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//找到EditText,添加文本监听

searchEditText=findViewById(R.id.et_search);

searchEditText.addTextChangedListener(new TextWatcher() {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值