2014-06-14 65 views
0

所以我使用zxing扫描仪尝试获得一些结果,我试图处理如果人不扫描任何东西会发生什么。 目前,我试图这样:NullPointerException空白扫描结果

String scanResult = scanningResult.getContents(); 
      if (scanResult.matches("")){ 
        scanResult = "You didnt scan anything"; 
        //I assume i need something similar to .setText? 
      } 
      else { 
       scanResult = scanningResult.getContents(); 
      } 
       TextView results=(TextView)findViewById(R.id.noResult); 
     results.setText(scanResult); 

但是,这是给我上的空白扫描一个NullPointerException。但如果正确扫描,则显示结果。任何线索为什么? (这是我第一次尝试更改基于文本关闭的结果,因此它可能是一些简单)

+0

NPE指向'如果(scanResult.matches( “”)){' –

回答

0

大概是因为scanningResult.getContents();返回空...

尝试切换:

if (scanResult.matches("")) 

与:

if (scanResult == null) 
+0

用'如果(scanResult.matches(空))试了一下'并认为这将是足够的,但显然不是。谢谢 –

+0

只有当对象不为空时,对象的方法才可用。具有讽刺意味的是,'.matches(null)'方法只有在scanResult不为null的情况下才有效,但它总是返回false(因为它不为空)。很高兴我可以帮助:) – orenk86