1.当edittext的焦点事件改变时,可以通过焦点监听事件来监听焦点改变事件
mEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
//如果有多个edittext可以用v.getId()来区分
if (hasFocus) {
//获得焦点的操作
} else {
//未获得焦点的操作
}
}
});
2.如何设置edittext默认无焦点,或点击空白处失去焦点
这个问题的解决思路是:在edittext的父布局中加入两行代码夺取焦点:
android:focusable="true"
android:focusableInTouchMode="true"
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="may.com.gittest.MainActivity"
android:focusable="true"
android:focusableInTouchMode="true"
>
<EditText
android:layout_width="match_parent"
android:id="@+id/et"
android:layout_height="wrap_content"/>
</RelativeLayout>
- edittext获得/失去焦点
mInputView.requestFocus(); //获得焦点
mInputView.setFocusable(false); //失去焦点
参考文章:
Edittext默认无焦点
网友评论