我在我的应用中使用了编辑文字,我想在编辑文本聚焦时更改背景。我写了一些代码,但我遇到了一个问题。我需要两次单击编辑文本才能显示键盘。
这是我的代码:
private View.OnFocusChangeListener myEditTextFocus = new View.OnFocusChangeListener() {
public void onFocusChange(View view, boolean hasfocus) {
if (hasfocus) {
((EditText) view).setBackgroundResource(R.drawable.edittext_input_background_focus);
((EditText) view).setTextColor(Color.parseColor("#4d4d4d"));
}
else {
((EditText) view).setBackgroundResource(R.drawable.edittext_input_background_not_focus);
}
};
};
问题在于这段代码,因为我对它进行了评论,一切都很完美。我的代码出了什么问题?或者,还有其他解决方案吗?
答案 0 :(得分:6)
//遵循此代码
将这3个可绘制文件放在res / drawable文件夹中
<强> simple_edittext.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle" >
<solid android:color="#FFFFFF" />
<stroke
android:width="3dp"
android:color="#FB9820" />
<corners
android:bottomLeftRadius="5dp"
android:bottomRightRadius="5dp"
android:topLeftRadius="5dp"
android:topRightRadius="5dp" />
</shape>
<强> focus_edittext.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle" >
<solid android:color="#58ACFA" />
<stroke
android:width="3dp"
android:color="#FB9820" />
<corners
android:bottomLeftRadius="5dp"
android:bottomRightRadius="5dp"
android:topLeftRadius="5dp"
android:topRightRadius="5dp" />
</shape>
<强> selector_edittext.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@drawable/focus_edittext"/>
<item android:drawable="@drawable/simple_edittext" />
</selector>
并使用这样的这些抽奖:
<EditText
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:layout_marginBottom="10dp"
android:background="@drawable/selector_edittext"
android:text="@string/hello_world" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/layout1"
android:padding="10dp"
android:background="@drawable/selector_edittext"
android:text="@string/hello_world" />
答案 1 :(得分:0)
您可以使用状态:
android:state_window_focused="true"
在bg.xml可绘制文件上:
<item android:state_window_focused="true" android:state_focused="true">
<shape>
<solid android:color="@color/colorWhite"/>
<stroke
android:width="1dp"
android:color="@color/colorPrimary" />
<corners
android:radius="55dp" />
</shape>
</item>
<item >
<shape>
<solid android:color="@color/colorWhite"/>
<stroke
android:width="1dp"
android:color="@color/colorGrey2" />
<corners
android:radius="55dp" />
</shape>
</item>
</selector>
和编辑文本如下:
<EditText
android:layout_width="match_parent"
android:layout_height="41dp"
android:layout_margin="50dp"
android:layout_marginTop="50dp"
android:background="@drawable/bg" />