Android: EditText NextFocusDown not trigger Spinner

android, android-edittext, android-layout, android-spinner

Solution

On your edit texts, override onEditorAction and give focus (or do whatever like open your spinner)...

yourEditTXT.setOnEditorActionListener(new OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView view, int actionID, KeyEvent event) {
            if (actionID == EditorInfo.IME_ACTION_NEXT) {
                //do your stuff here...
                return true;
            }
            return false; 
    }
});     

Edit 12/4: I see you were still struggling with this as of last night, if you didn't find a solution (and didn't post one) or to help others who may read this, this may help to get from spinner to edit text.

mySpinner.setOnItemSelectedListener(new MyOnItemSelectedListener());            

public class MyOnItemSelectedListener implements OnItemSelectedListener {

        public void onItemSelected(AdapterView<?> parentview, View v, int position, long id) {
            // your spinner proces code 
            // then when you are done, 
            yourEditText.setFocusableInTouchMode(true);  //if this is not already set
            yourEditText.requestFocus();  //to move the cursor
            final InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
            inputMethodManager.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);  // this line and the one above will open the soft keyboard if it doesn't already open
        }

        public void onNothingSelected(AdapterView<?> arg0) { }
    };

Problem

In my application I have one registration screen, There are lot of EditTexts and Spinners. I want to go through the Registrations field one by one. So I applied `android:imeOptions="actionNext"` . But It ignores all the Spinners. It will give focus only to EditText. I have also tried `setNextFocusDownId()`. This is also ignore the spinners. ``` <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/reportentry11" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <EditText android:id="@+id/numbers" android:layout_width="fill_parent" android:layout_height="wrap_content" android:imeOptions="actionNext" android:inputType="phone" > <requestFocus/> </EditText> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/reportentry12" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/txt_exp" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="EXP:" android:textColor="#000000" android:textSize="12dp" /> <Spinner android:id="@+id/spin_date" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="3" android:focusable="true" android:focusableInTouchMode="true" android:nextFocusDown="@+id/spin_year" android:text="date" android:textSize="12dp" /> <Spinner android:id="@+id/spin_year" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginRight="5dp" android:nextFocusDown="@+id/cvc" android:text="year" android:textSize="12dp" /> </LinearLayout> <EditText android:id="@+id/cvc" android:layout_width="fill_parent" android:layout_height="fill_parent" android:hint="@string/reg_label_cvc" android:imeOptions="actionNext" android:inputType="phone" /> <EditText android:id="@+id/fname" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/reg_label_fname" android:imeOptions="actionNext" /> <EditText android:id="@+id/address" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/reg_label_address" android:imeOptions="actionNext" /> <EditText android:id="@+id/city" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/reg_label_city" android:imeOptions="actionNext" android:nextFocusDown="@+id/pr_spin" /> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/reportentry13" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/txt_pr" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="PROV:" android:textColor="#000000" android:textSize="12dp" /> <Spinner android:id="@+id/pr_spin" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="date" android:imeOptions="actionNext" android:textSize="14dp" /> <EditText android:id="@+id/pcode" android:layout_width="fill_parent" android:layout_height="fill_parent" android:hint="@string/reg_label_pcode" android:imeOptions="actionDone" /> </LinearLayout> <Button android:id="@+id/register_register_button" android:layout_width="wrap_content" android:background="@drawable/green_button_bg" android:onClick="completeClicked" android:text="@string/reg_label_complete" android:textSize="28dp" android:textStyle="bold" /> </LinearLayout> ``` Please provide me the best way to trigger the spinners.

Original source

Related problems