В моем приложении есть большое поле EditText, которое содержит штрих-коды, разделенные «\ n». Штрих-коды могут быть добавлены в это поле EditText либо программно (в onActivityResult, возвращаемом из действия сканирования), либо вручную.Редактирование списка редакторов
Случайный пример:
010566510415
40541651654556
561516551588
0043211652
003789453
мне нужно каждый из этих штриховых кодов должны быть сохранены локально с их типом штрих-кода.
Случайный пример:
- Code128 (scanned)
561516551588 - Custom (manually inputted)
xx - Code128_Custom (scanned, then edited by user!!)
Библиотека сканирования Я использую идентифицирует типы штрих-кодов на сканировании, так что у меня есть ArrayList объектов, которые сохраняет отсканированные штрих-кодов с их соответствующего типа штрих-кода.
public class BarcodeObject
{
private int _position = -1;
private String _barcode = "";
private String _barcodeType = "";
}
Проблема у меня держит ArrayList<BarcodeObject>
синхронно с EditText, когда пользователь вручную редактирует штрих-код.
Есть ли у вас идеи, как я должен это сделать?
Редактировать 1: Благодарим за ответы. Одна из проблем заключается в том, что я не знаю, какой штрих-код пользователь модифицирует. Мне удалось решить это, используя numbersList.getSelectionStart();
, чтобы узнать, где находится курсор, а затем найдите ближайший «\ n», чтобы определить правильный штрих-код (bcs все штрих-коды находятся между «\ n»). Но что происходит, если пользователь щелкает, выбирает более одного штрих-кода и меняет их. Я просто не знаю, как синхронизировать их.
Сохраните TextWatcher на своем edittext и попробуйте выполнить поиск с существующим arraylist, если что-то изменилось пользователем – Jai