Android 如何基于EditText行的空测试更改ImageView的颜色状态?

Android 如何基于EditText行的空测试更改ImageView的颜色状态?,android,android-edittext,android-imageview,android-drawable,Android,Android Edittext,Android Imageview,Android Drawable,当EditText行为空(默认值)时,我希望ImageView图标颜色为白色 当按下图标时,我希望颜色为黑色,然后恢复为白色,因为按下按钮会清除EditText行,因此它将再次为空 使用ImageView,我首先将src设置为一个白色的可绘制的。关于如何根据EditText行的长度测试来切换颜色状态,有什么想法吗?我不太确定这个问题是什么,当你引入ImageView和hover时,我感到困惑,因为我认为手机不支持onHoverListener。。您的意思是在单击EditText以键入内容时更改其

EditText
行为空(默认值)时,我希望
ImageView
图标颜色为白色

当按下图标时,我希望颜色为黑色,然后恢复为白色,因为按下按钮会清除
EditText
行,因此它将再次为空


使用
ImageView
,我首先将
src
设置为一个白色的
可绘制的
。关于如何根据
EditText
行的长度测试来切换颜色状态,有什么想法吗?

我不太确定这个问题是什么,当你引入ImageView和hover时,我感到困惑,因为我认为手机不支持onHoverListener。。您的意思是在单击EditText以键入内容时更改其重音颜色吗?如果是这样,它将位于colors.xml-->colorAccent下

另外,如果您想更改图像的背景色

 public void onClick(View v) {
                imageView.setBackgroundColor(Color.parseColor(EditText.getText().toString()));
        }

希望我能为您提供一些帮助以继续您的项目。

要在textview为空时更新图标,请检查
addTextChangedListener()

 public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                Log.i("Text", charSequence + "");
                if(charSequence.length()==0)
                    ib.setImageResource(R.drawable.button_unpressed);
                else
                    ib.setImageResource(R.drawable.button_pressed);
            }
若要更改imagebutton背景,请使用“在绘图中创建xml”跟随其状态

若要在按下后保持图标的颜色为黑色,只需将onClick()重写为


抱歉搞混了。我想对于hover,我想到的是鼠标光标,因为我一直在使用模拟器进行开发。我将编辑我的答案以删除悬停引用。对于颜色从白色变为黑色,然后再变回白色,我应该删除“android:src=“drawable/…”吗。。。“从我的xml布局文件中删除行,然后按照您在活动文件中的编程建议设置BackgroundColor?我的设想是,您有一个ImageView和一个EditText,如果您有一个emty EditText,ImageView将为白色。当在ImageView上单击EditText时,它几乎会变为黑色。EditText行开始为空,图标为白色。当用户在EditText行中输入数据时,该行不再为空,因此我希望ImageView更改为黑色。对于EditText,您需要实现textwatcher以侦听文本更改。因此,在ContextChanged之后添加代码,这将改变setBackgroundColor?最好在
afterTextChanged
中添加代码,请参见提供的链接中的第二个答案。这不是公认的答案。若要更改按钮单击时的颜色,只需设置选择器。因此,当其状态发生变化时,将自行选择相对可绘制。查看此链接好的,谢谢。我会看一看。这些答案是否适用于ImageView以及您建议的按钮?不适用于ImageView。ImageView和ImageButton基本上只是通过onClick操作进行区别。在这种情况下,您应该使用ImageButton/按钮OK,我将研究onClick的差异,但为什么您建议使用ImageButton而不是ImageView?因为“当按下图标时”…ImageButton支持它,您还可以通过xml自定义其可绘制性
ib.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ib.setImageResource(R.drawable.button_pressed);
            }
        });