【发布时间】:2016-10-03 12:11:19
【问题描述】:
在我的应用中有一个很大的 EditText 字段,其中包含由“\n”分隔的条形码。可以通过编程方式(在从扫描活动返回的 onActivityResult 中)或手动将条形码添加到此 EditText 字段。
随机示例:
010566510415
40541651654556
561516551588
0043211652
003789453
我需要将这些条形码中的每一个与其条形码类型一起保存在本地。
随机示例:
012315612323 - Code128 (scanned)
561516551588 - Custom (manually inputted)
0123156124xx - 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 保留在您的编辑文本上,如果用户更改了某些内容,请尝试使用现有的数组列表进行搜索
标签: java android arraylist android-edittext barcode-scanner