我需要从编辑文本中清除焦点并将其放在另一个元素上,问题是焦点始终在编辑文本上,无论我做什么,它都不会失去焦点。
我想在单击软键盘的下一个按钮时更改焦点,因此我使用编辑器选项监听器来执行此操作,因为键盘是隐藏的,所以工作正常。
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_NEXT) {
InputMethodManager imm =
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(tviewNombreNC.getWindowToken(), 0);
tviewNombreNC.clearFocus();
spinnerNuevaConf.requestFocus();
}
return false;
}
我尝试过使用requestFocus(),同时使用clearFocus和两者,但没有做任何事情。如果编辑文本从未聚焦,其他元素可以获得焦点,但是当ET获得它时,其他元素无法捕获它。
布局
<TextView android:text="@string/nuevaconfiguracion_titulo"
android:textSize="25sp" android:textColor="@android:color/black"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textStyle="bold"/>
<ImageView android:src="@drawable/barra_verde"
android:layout_width="match_parent"
android:layout_height="5dp" android:scaleType="fitXY"/>
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp">
<ImageView android:src="@drawable/barra_verde"
android:layout_width="4dp" android:layout_height="30dp"
android:scaleType="fitXY" android:layout_marginRight="5dp"
android:layout_gravity="center_vertical" android:visibility="visible"
android:id="@+id/view_nuevaconfiguracion_1_nombre_focus"/>
<TextView android:text="@string/nuevaconfiguracion_1_nombre"
android:textSize="18sp" android:textColor="@android:color/black"
android:layout_marginRight="5dp" android:layout_width="72dp"
android:layout_height="wrap_content"/>
<EditText android:layout_width="match_parent" android:layout_height="40dp"
android:id="@+id/view_nuevaconfiguracion_usuario"
android:background="@android:drawable/editbox_background_normal"
android:textColor="@android:color/black" android:textSize="18sp"
android:singleLine="true" android:imeOptions="actionNext"
android:nextFocusDown="@+id/view_nuevaconfiguracion_moneda"/>
</LinearLayout>
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_marginTop="5dp">
<ImageView android:src="@drawable/barra_verde" android:layout_width="4dp"
android:layout_height="30dp"
android:scaleType="fitXY" android:layout_marginRight="5dp"
android:layout_gravity="center_vertical" android:visibility="invisible"
android:id="@+id/view_nuevaconfiguracion_1_divisa_focus"/>
<TextView android:textSize="18sp" android:textColor="@android:color/black"
android:text="@string/nuevaconfiguracion_1_divisa"
android:layout_marginRight="5dp" android:layout_width="72dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"/>
<Spinner android:layout_width="match_parent" android:layout_height="40dp"
android:id="@+id/view_nuevaconfiguracion_moneda"
android:background="@android:drawable/editbox_background_normal"
android:dropDownVerticalOffset="5dp"/>
</LinearLayout>
答案 0 :(得分:0)
根据this,您需要在spinnerNuevaConf.performClick();
之后添加spinnerNuevaConf.requestFocus();
并使微调器具有焦点。我试过这个并且它通常有效,但它看起来不太好,因为微调器被放置在屏幕中间的某个位置,因为键盘不会立即被隐藏...我不知道是否有解决方案。