Неправильное поведение EditText в BaseAdapter

Я получил ListView, заполненный с помощью BaseAdapter . В элементе listview имеется числовое EditText:

 ... <EditText android:id="@+id/edit_quantita" android:layout_width="50dp" android:layout_height="30dp" android:layout_gravity="center" android:layout_marginTop="5dp" android:background="@drawable/edit_quantita" android:gravity="center_vertical|center_horizontal" android:inputType="number" android:text="1" android:textColor="#fff" tools:ignore="HardcodedText" > </EditText> ... 

Когда я нажимаю на этот EditText, числовая подсказка клавиатуры на мгновение, а затем внезапно накладывается обычной клавиатурой символов. Если я попытаюсь что-то написать на этой клавиатуре, текст не будет показан нигде. Любопытно, что если я снова коснусь Editext, он будет вести себя так, как должен, показывая только рабочую цифровую клавиатуру.

Что я могу сделать?

Реализация EditText имеет много недостатков при использовании в ListView . Попытайтесь добавить этот фрагмент кода в свой onCreate() :

 int apiVersion = android.os.Build.VERSION.SDK_INT; if (apiVersion >= android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH) getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); else getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 

Вы можете попробовать следующее:

  • Проверьте, есть ли у вас другой EditText, который может перекрываться с числовым.
  • Создайте новое действие только с числовым EditText и посмотрите, произойдет ли это.
  • Проверьте код действия, чтобы узнать, что-то изменяется во время выполнения. Я не думаю, что вы можете изменить тип EditText с помощью кода, но, возможно, что-то другое изменит его поведение.

Надеюсь, что это поможет отладить проблему.