带删除按钮的EditText

在使用输入框的时候,常常需要在输入框后带有一键清除输入内容的按钮。采用自定义View的方式是复用性较高的方法。另一方面也可以采用控件“控件+监听”的较为简单的方法来实现。

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的道外网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

布局文件:


    
    
    

主要代码:

        tvCloseUser = (TextView) findViewById(R.id.closeUser);//清除按钮,使用TextView
        tvCloseUser.setVisibility(View.INVISIBLE);
        
        mEtUserName = (EditText) findViewById(R.id.etUser);//文本框
        
        //监听文本变化
        mEtUserName.addTextChangedListener(new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                if (s.length() > 0){
                    tvCloseUser.setVisibility(View.VISIBLE);
                }else{
                    tvCloseUser.setVisibility(View.GONE);
                }
            }
        });
        //点击清除文本
        tvCloseUser.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mEtUserName.setText("");
            }
        });
        //监听焦点变化,没有焦点则清除按钮不可见
        mEtUserName.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus && mEtUserName.getText().length() > 0){
                    tvCloseUser.setVisibility(View.VISIBLE);
                }else {
                    tvCloseUser.setVisibility(View.GONE);
                }
            }
        });

网站标题:带删除按钮的EditText
文章出自:http://azwzsj.com/article/ihjidh.html