如何在编辑和移动到下一个edittext后更改EditText背景

时间:2016-02-14 15:34:33

标签: android

我有一个多个textfields / edittext的形式。我输入数据并移动到下一个表单字段后,想要更改edittext的背景颜色。

请建议,

提前致谢。

4 个答案:

答案 0 :(得分:2)

edittext_background.xml中创建文件drawable

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/colorEditTextDisable" android:state_enabled="false"/>
    <item android:drawable="@color/colorEditTextFocusLost" android:state_enabled="true" android:state_focused="false"/>
    <item android:drawable="@color/colorEditTextFocusGained" android:state_enabled="true" android:state_focused="true"/>
</selector>

并在colors.xml

中添加所需的颜色
<color name="colorEditTextDisable">#999999</color>
<color name="colorEditTextFocusLost">#ffffff</color>
<color name="colorEditTextFocusGained">#c6c6c6</color>

从抽象中使用背景,尝试一下

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/edittext_disabled" android:state_enabled="false"/>
    <item android:drawable="@drawable/edittext_focus_lost" android:state_enabled="true" android:state_focused="false"/>
    <item android:drawable="@drawable/edittext_focus_gained" android:state_enabled="true" android:state_focused="true"/>
</selector>

并将其设置为EditText的背景 在XML中:android:background="@drawable/edittext_background"
或者在Java中:editText.setBackgroundResource(R.drawable.edittext_background);

答案 1 :(得分:0)

让我们看看你有edittext1和edittext2:

edittext1.setBackgroundColor(Color.parseColor("#000000"));

edittext2.requestFocus();

答案 2 :(得分:0)

您需要为每个onFocusChangeListener设置EditText。现在,当用户点击另一个EditText并从第一个{@ 1}移除焦点时,将为第一个onFoucsChange调用EditText,您可以相应地更改背景。

答案 3 :(得分:0)

certin代码我添加了Rehan的代码。它提供了更好的网络功能。

edittext.setOnFocusChangeListener(myEditTextFocus);

 private View.OnFocusChangeListener myEditTextFocus =  new View.OnFocusChangeListener() {
        public void onFocusChange(View view, boolean gainFocus) {
            //onFocus
            if (gainFocus) {
                //set the text
                //((EditText) view).setText("In focus now");
                ((EditText) view).setBackgroundResource(R.drawable.bg_edittext);
            }
            //onBlur
            else {
                int l=((EditText) view).getText().length();//System.out.println("zeetu"+l);
                //clear the text
                if(l>1){((EditText) view).setBackgroundResource(R.drawable.custom_edit_text_new);}

            }
        };
    };