У меня есть ListView с одним EditText в каждой строке (в дополнение к нескольким нередактируемым TextView). Когда я редактирую текст в EditText, на мягкой клавиатуре есть кнопка «Далее» - и нажатие на нее перемещает фокус в следующее поле - это здорово. В последней строке кнопка изменяется на «Готово».Listview с edittext - auto scroll on "next"
Я использую EditText.setImeOptions
, чтобы установить кнопку «Готово» или «Далее» в зависимости от последней строки или нет.
Проблема в том, что в listview может быть больше строк, которые могут поместиться на экране. Когда это произойдет, нажатие «Далее» на следующей видимой строке снова перемещает фокус на первую строку. Как я могу заставить его прокрутить список и перейти к следующей строке?
Для справки, вот что я делаю в моем адаптере:
public class AuditAdapter extends BaseAdapter {
private Context context;
private int layoutResourceId;
private Audit audit;
...
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View row = convertView;
final AuditItemHolder holder = (row == null ? new AuditItemHolder() : (AuditItemHolder)row.getTag());
if(row == null)
{
LayoutInflater inflater = ...;
row = inflater.inflate(layoutResourceId, parent, false);
...
holder.qtyf = (EditText)row.findViewById(R.id.item_quantity);
}
AuditItem item = audit.getItemAt(position);
holder.qtyf.setText("" + item.getQuantity());
holder.qtyf.setImeOptions(position == audit.size() - 1 ? EditorInfo.IME_ACTION_DONE : EditorInfo.IME_ACTION_NEXT);
...
row.setTag(holder);
return row;
}
private static class AuditItemHolder {
...
EditText qtyf;
}
}
работал ... Thnax. –