У меня есть несколько EditTexts на моем экране, и все они построены следующим образом.
XML:
<android.support.design.widget.TextInputEditText
android:id="@+id/textInputEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/name"
app:fontFamily="@font/karla"
android:inputType="textMultiLine|textCapCharacters"
android:maxLength="12"
android:textColor="#5C7264"
/>
Код:
private void addItemsToLinearLayout(int numItems) {
LayoutInflater inflater = LayoutInflater.from(mContext);
for (int i = 0; i < numItems; i++) {
View childView = inflater.inflate(R.layout.item_linearlayout, null);
linearlayoutPlayersNames.addView(childView);
ImageView deleteRowIcon = childView.findViewById(R.id.deleteRowIcon);
deleteRowIcon.setOnClickListener(this);
TextView myTV = childView.findViewById(R.id.txtTitle);
myTV.setText(String.format(getString(R.string.player), linearlayoutPlayersNames.indexOfChild(childView) + 1));
EditText editText = childView.findViewById(R.id.textInputEditText);
editText.setImeOptions(EditorInfo.IME_ACTION_NEXT);
editText.setRawInputType(InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS);
}
}
Когда янажмите следующую кнопку программной клавиатуры, чтобы перейти к следующему EditText, как и ожидалось, но ТОЛЬКО если следующий EditText виден на экране.Когда следующий EditText не отображается на экране, следующее действие не имеет никакого эффекта, и, кроме того, оно заменяет кнопку следующего действия на кнопку действия возврата каретки, как показано в этом видео: https://imgur.com/a/snAbdmU
ЧтоЯ намереваюсь сделать, это нажать следующую кнопку и переместить видимость к следующему тексту редактирования.
ОБНОВЛЕНИЕ : некоторые из вас сказали мне сделать это, используя android:nextFocusDown
или программно с editText.setNextFocusForwardId(editTextSecond.getId());
но я не могу, потому что я использую цикл для создания EditText
s, как показано сейчас в коде.