EditText,如何隐藏DrawableRight

EditText, how to hide DrawableRight

我想在我的文本区域中使用 DrawableRight,但是当我开始输入时它应该会消失。所以我有 EditText 的代码和知道何时隐藏可绘制对象的函数,但我不知道如何调用该函数。你能帮帮我吗?

//XML CODE
<EditText
        android:id="@+id/textt"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_gravity="center_vertical"
        android:ems="10"
        android:paddingLeft="2dp"
        android:hint="Wpisz wiadomość"
        android:background="@android:color/transparent"
        android:maxLines="4" />

//JAVA CODE
public void camera(View v)
{
    EditText textArea=(EditText) findViewById(R.id.textt);
    if(textArea.getText()==null)
    {
        textArea.setCompoundDrawables(null, null, ContextCompat.getDrawable(this,R.drawable.ic_camera_alt_black_18dp), null);
    }
    else
        textArea.setCompoundDrawables(null,null,null,null);
}

解决方案: 我处理了它!首先,我将 "this" 更改为 "MainActivity.this"。第二点非常重要——为可绘制对象设置边界!完成。

您应该对您的 Edittext 实施 TextWatcher
请。看一个例子 here.

onTextChanged 中,您可以检查 - 如果 CharSequence s 长度 > 0,那么您输入了一些文本并且应该隐藏可绘制对象。
CharSequence s 是您在 onTextChanged 方法中收到的参数。

隐藏textArea的drabwable,你可以试试这个:

Drawable[] drawables = textArea.getCompoundDrawables();
for (Drawable d: drawables) {
    if (d != null) {
        d.setAlpha(0);
    }
}