我希望能够从EditText删除焦点。例如,如果键盘出现,用户用后退按钮隐藏它,我希望焦点和光标消失。怎样才能做到呢?


当前回答

你必须删除<requestFocus/>

如果你不使用它,还是同样的问题

user LinearLayout作为父类并设置

android:focusable="true"
android:focusableInTouchMode="true"

希望对你有所帮助。

其他回答

添加到你的父布局,你把你的EditText这个android:focusableInTouchMode="true"

在XML中的EditText之前添加LinearLayout。

<LinearLayout 
    android:focusable="true"
    android:focusableInTouchMode="true" 
    android:clickable="true"
    android:layout_width="0px"
    android:layout_height="0px" />

或者你也可以在'EditText'之前添加这些行来查看。

<Button
    android:id="@+id/btnSearch"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:gravity="center"
    android:text="Quick Search"
    android:textColor="#fff"
    android:textSize="13sp"
    android:textStyle="bold" />

<EditText
    android:id="@+id/edtSearch"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:layout_marginRight="5dp"
    android:gravity="left"
    android:hint="Name"
    android:maxLines="1"
    android:singleLine="true"
    android:textColorHint="@color/blue"
    android:textSize="13sp"
    android:textStyle="bold" />
editText.setFocusableInTouchMode(true)

EditText将能够在用户触摸它时获得焦点。 当主布局(活动,对话框等)变得可见时,EditText不会自动获得焦点,即使它是布局中的第一个视图。

check your xml file
 <EditText
            android:id="@+id/editText1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="14sp" >

            **<requestFocus />**
 </EditText>


//Remove  **<requestFocus />** from xml

当活动开始时隐藏键盘。在onCreate()中编写以下代码..

InputMethodManager imm = (InputMethodManager)
getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0);

清除焦点并从edittext.....中删除光标

editText.clearFocus();

editText.setCursorVisible(false);