EditText监听内容

连学习带记录,在EditText中根据内容判断是否显示一个删除的叉叉图片。

功能通过自定义控件的方式可以实现,不过还有更简单的方法,算是偷懒的做法吧

那就是将EditText跟一个TextView或者一个ImageView写在同一个LinearLayout中,横向显示,然后根据内容来显示和隐藏叉叉图片。

下面贴代码

首先是布局

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <EditText
            android:id="@+id/user_info_update_name_edit"
            android:layout_width="match_parent"
            android:layout_height="@dimen/dp45"
            android:layout_weight="1"
            android:background="@color/white"
            android:textColorHint="@color/centerColor"
            android:focusable="true"
            android:text="王二"
            android:gravity="center|left"/>
        <TextView
            android:id="@+id/cancel_update_name"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:gravity="center"
            android:background="@color/white"
            android:visibility="gone"
            android:paddingLeft="@dimen/tenDp"
            android:paddingRight="@dimen/tenDp"
            android:text="x"/>
    </LinearLayout>


很简单的布局,下面贴功能代码:

//设置内容改变
        user_info_update_name_edit.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                if(s.length() >0){
                    cancel_update_name.setVisibility(View.VISIBLE);
                }else if(s.length() == 0){
                    cancel_update_name.setVisibility(View.GONE);
                }
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });
        //清空内容的点击事件
        cancel_update_name.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                user_info_update_name_edit.setText("");
            }
        });

核心代码就是这一点,EditText的监听需要一个TextWatcher类,重写三个方法来决定是在什么状态下进行监听。


以上,小菜鸟还差得远,还望多多指教!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值