2014-10-20 170 views
-1

即时使用zbar条码服务,并在某些数字应用程序关闭。条形码数字太长Integer.parseInt

我扫描条形码,在edittext中接收条形码,让它设置好,它会搜索json数组以匹配id。那么这适用于正常数字整数扩展到的方式。但是,我需要让它接受它包含的任何值。

此外,当使用像000.000.000.022-22ON这样的断点时,应用程序将关闭。

有没有人有关于如何避免这种情况的线索?

是否有可能让它检查输入的内容?

已经看过不同的片段和教程,但无法找到答案..

 String xyz = edt.getText().toString(); 
      try { // Getting JSON Array 
       user = json.getJSONArray(TAG_FIXTURE); 
JSONObject c = user.getJSONObject(Integer.parseInt(xyz)-1); 

回答

0

的Integer.parseInt(值)需要字符串只能包含数字。

如果你看这里海报有一个类似的问题。 Get int from String, also containing letters, in Java

您也可以试试简单地使用一个字符串,并尝试匹配的是,如果它有可能像“22-22ON”的ID存在于你在搜索数据库中。

+0

我的本意是只有它的结果是JSON数组中的值。是否有可能使其搜索字符串值?当那个值不存在时,我将显示一条消息,比如'找不到产品'。 – berhas 2014-10-20 11:17:43

+0

这绝对是可能的,但如果数组很大,则可能会很慢地通过每个元素并检查String.equals。 如果JSONArray不包含几千个元素,它不应该是太多的问题。只需要做一些事情(JSONObject c:user),然后比较xyz中包含的值。如果匹配,那么你知道它存在于数组中,如果不是,那么它不存在 – simernes 2014-10-20 11:46:30

+0

我是否将值与equals()进行比较? – berhas 2014-10-20 12:15:08