0

Edit Text からフォーカスをクリアして、別の要素に配置する必要があります。問題は、何をしてもフォーカスが常に Edit Text にあることです。フォーカスが失われることはありません。

ソフトキーボードの次のボタンがクリックされたときにフォーカスを変更したいので、キーボードが非表示になっているため、それを行うためにエディターオプションリスナーを使用します。

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、および両方を同時に試しましたが、何も行われません。Edit Text がフォーカスされていない場合、他の要素はフォーカスを取得できますが、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

thisによると、 spinnerNuevaConf.performClick();afterを追加しspinnerNuevaConf.requestFocus();て、スピナーをフォーカス可能にする必要があります。私はこれを試してみましたが、通常は機能しますが、キーボードがすぐに非表示にならないため、スピナーが画面の中央のどこかに配置されているため、見栄えがよくありません...これに対する解決策。

于 2013-06-12T14:11:51.327 に答える