如何使用AutoCompleteTextView进行下一个焦点?

时间:2015-12-15 10:36:04

标签: android focus autocompletetextview

在XML文件中有Autocompletetextview和几个EditText。

<AutoCompleteTextView
    android:id="@+id/lastName"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/lastName"
    android:inputType="textCapSentences|textPersonName"
    android:lines="1"
    android:maxLength="50"
    android:singleLine="true"
    android:textSize="@dimen/activity_add_passenger_textSize" />
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <EditText
        android:id="@+id/firstName"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:hint="@string/firstName"
        android:inputType="textCapSentences|textPersonName"
        android:lines="1"
        android:maxLength="50"
        android:singleLine="true"
        android:textSize="@dimen/activity_add_passenger_textSize"
        android:nextFocusDown="@+id/middleName"/>

    <EditText
        android:id="@+id/middleName"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:hint="@string/middleName"
        android:inputType="textCapSentences|textPersonName"
        android:lines="1"
        android:maxLength="50"
        android:singleLine="true"
        android:textSize="@dimen/activity_add_passenger_textSize" />

</LinearLayout>

我正在尝试从下一个编辑文本(firstName)上的AutoCompleteTextView进行聚焦。我添加了

  

机器人:imeOptions = “actionNext”

进入AutoCompleteTextView,但没有任何反应。我尝试了一种不同的方法来通过Activity中的代码解决这个问题。但是当我按下Enter键时,会立即在editText(middleName)上传递

lastNameEditText.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
            if (keyEvent.getAction() == KeyEvent.ACTION_DOWN)
            {
                switch (keyCode)
                {
                    case KeyEvent.KEYCODE_ENTER:
                        firstNameEditText.setFocusable(true);
                        firstNameEditText.setFocusableInTouchMode(true);
                        firstNameEditText.requestFocus();
                        return true;
                    default:
                        break;
                }
            }
            return false;
        }
    });

0 个答案:

没有答案