У меня есть список в моем приложении, которое в основном представляет собой вопросник, поэтому есть некоторые EditTexts, которые пользователь должен заполнить. Я столкнулся следующие вопросы:Android: EditText в проблеме ListView
Некоторые EditText требуют числового ввода, поэтому я поставил inputType в соответствующем типе XML как числовые, однако, как при нажатии на EditText цифровой клавиатуры отображается но почти сразу же исчезает и отображается обычная клавиатура.
Как вы можете себе представить, мне нужно сохранить значения, которые пользователь вводит в эти EditTexts. Проблема, с которой я сталкиваюсь, заключается в том, что после ввода некоторого текста в некоторые разделы EditTexts и прокрутки вниз текст исчезает, когда я возвращаюсь. Вы можете увидеть в моем коде, что я пытался предотвратить это, и я должен упомянуть, что он отлично работает с флажками.
В начале у меня возникали проблемы с потерей фокуса, но я решил это посмотреть на другие вопросы (добавлен descendantFocusablity = "beforeDescendants" в ListView и windowSoftInputMode = "adjustPan"). Прекрасно работает, за исключением того, что когда EditText находится ниже половины экрана, он теряет фокус, как только я начинаю вводить его. метод GetView для списка адаптера:
public View getView(final int position,View result,ViewGroup parent) { final ViewHolder vh; final Question question = values.get(position); if(holders[position]==null) vh = new ViewHolder(); else vh = holders[position]; LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); if(question.getQuestionType().equals(Question.TYPE_CLOSED)) { result = inflater.inflate(R.layout.closed_question_list_item, null); vh.cb = (CheckBox)result.findViewById(R.id.checkbox); vh.cb.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { vh.isChecked = isChecked; holders[position] = vh; } }); vh.cb.setChecked(vh.isChecked); } else { result = inflater.inflate(R.layout.numeric_question_list_item, null); vh.et = (EditText)result.findViewById(R.id.question_et); vh.et.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable s) { vh.tvValue = s.toString(); holders[position] = vh; Log.i(TAG,"Entered afterTextChanged for "+ question.getText()); } @Override public void beforeTextChanged(CharSequence s, int start,int count, int after) { } @Override public void onTextChanged(CharSequence s, int start,int before, int count) { } }); vh.et.setText(vh.tvValue); } vh.tv = (TextView)result.findViewById(R.id.question_text); vh.tv.setText(question.getText()); holders[position] = vh; result.setTag(vh); return result; }
может быть, это может помочь вам http://stackoverflow.com/questions/8772714/edittext-loses-content-on-scroll-in-listview?rq=1 – JahShaka
как вы решить выпуск # 3? Если вы решите, отправьте ответ – desidigitalnomad