Проблема с фокусом в DisplayView EditText в диалоговом окне в Android

Я должен показать, что ListView содержит EditText на Dialog, где пользователь может ввести текст в EditText, и его содержимое не должно быть потеряно.

Например, у меня есть 10 EditText в listview, если пользователь набирает «11» в первом EditText, «22» во втором EditText, «33» в третьем EditText и прокручивает вниз список в десятом EditText после того, как этот пользователь снова прокручивает его в Сначала EditText в это время значение в первом EditText должно быть «11», для второго EditText «22» и так далее, я достиг этого, установив EditText, когда текст изменяется в EditText.

Я использую NiftyDialog как диалог ( Link ). Проблема в том, что EditText получил фокус случайным образом (он иногда работал, а иногда и нет).

Я установил

андроид: descendantFocusability = "afterDescendants"

В ListView и установить

андроид: windowSoftInputMode = "adjustPan"

В файле манифеста, но он работает неправильно.

Что может быть здесь?

Solutions Collecting From Web of "Проблема с фокусом в DisplayView EditText в диалоговом окне в Android"

Используйте другой список строкового типа размером 10 и сначала поместите пустую строку из каждой строки, добавьте элемент textwatcher в edittext и onTextchange, переопределите строковое значение в списке для этой конкретной позиции. Пожалуйста, укажите, что ваш код адаптера будет оставаться

Вы явно обращаете внимание на EditText? Как и в myEditText.requestFocus()

Из вашего вопроса кажется, что вы хотите, чтобы текст сфокусированного редактирования изменился по мере прокрутки пользователя. Можете ли вы уточнить поведение, которое вы ожидаете и что происходит?

У меня была эта проблема некоторое время назад с помощью EditText focus и понял, что просто установка атрибутов в существующих представлениях не будет работать. В моем случае это было, чтобы избежать появления клавиатуры, но я считаю, что то же решение будет работать и в вашем случае.

Добавьте фиктивный макет с android:focusable="true" и android:focusableInTouchMode="true" сверху поверх всех других видов. Таким образом, основное внимание будет уделено этому макету (который находится вверху), и ваша случайная проблема фокусировки с EditText в ListView будет решена.

  <!-- Stop auto focussing the EditText --> <LinearLayout android:layout_width="0dp" android:layout_height="0dp" android:background="@android:color/transparent" android:focusable="true" android:focusableInTouchMode="true"> </LinearLayout>