0

我需要从编辑文本中清除焦点并将其放在另一个元素上,问题是焦点始终在编辑文本上,无论我做什么,它都不会失去焦点。

我想在单击软键盘的下一个按钮时更改焦点,所以我使用编辑器选项侦听器来做这件事,因为键盘是隐藏的,所以效果很好。

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>

4

1 回答 1

0

据此您需要添加spinnerNuevaConf.performClick();afterspinnerNuevaConf.requestFocus();并使微调器可聚焦。我试过这个,它通常可以工作,但它看起来不太好,因为微调器被放置在屏幕中间的某个地方,因为键盘不会立即隐藏......我不知道是否有解决方案。

于 2013-06-12T14:11:51.327 回答