安卓EditText能不能实现有文字时和无文字时的背景颜色不同 200

我想实现一个功能,EditText中没有文字时背景颜色为全透明,当输入文字时背景颜色变成其他颜色。这个功能是否能实现呢?如果可以请大神指点一下... 我想实现一个功能,EditText中没有文字时背景颜色为全透明,当输入文字时背景颜色变成其他颜色。这个功能是否能实现呢?如果可以请大神指点一下 展开
 我来答
蓝二的兔叽
2018-04-23 · 超过73用户采纳过TA的回答
知道小有建树答主
回答量:117
采纳率:0%
帮助的人:43.6万
展开全部
  1. 可以实现,自定义一个edittext,对其输入和焦点监听改变背景色就可以了。

  2. /**
    * Created by beckett on 2018/4/23.
    */

    public class BackgroundEditText extends AppCompatEditText implements View.OnFocusChangeListener, TextWatcher {

    private boolean hasFoucs;


    public BackgroundEditText(Context context) {
    this(context, null);
    }

    public BackgroundEditText(Context context, AttributeSet attrs) {
    this(context, attrs, android.R.attr.editTextStyle);
    }

    public BackgroundEditText(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    init();
    }

    private void init() {
    // 默认设置隐藏背景
    setBackgroundColorVisible(false);
    // 设置焦点改变的监听
    setOnFocusChangeListener(this);
    // 设置输入框里面内容发生改变的监听
    addTextChangedListener(this);
    }
    /**
    * 当BackgroundEditText焦点发生变化的时候,
    * 输入长度为零,隐藏背景,否则,显示背景
    */
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
    this.hasFoucs = hasFocus;
    if (hasFocus) {
    setBackgroundColorVisible(getText().length() > 0);
    } else {
    setBackgroundColorVisible(false);
    }
    }

    protected void setBackgroundColorVisible(boolean visible) {
    if(visible){
    setBackgroundResource(R.color.colorPrimary);  //有文本长度时
    }else{
    setBackgroundResource(R.color.Transparent);  //没有透明
    }
    }



    @Override
    public void onTextChanged(CharSequence s, int start, int count, int after) {
    if (hasFoucs) {
    setBackgroundColorVisible(s.length() > 0);
    }
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    @Override
    public void afterTextChanged(Editable s) {
    }

    }

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式