2011-10-09 149 views
0

原谅我是Android新手和Java新手。我正在尝试使用来自MySQL服务器的数据创建动态列表视图。但是,有时查询只返回一个结果。当我的适配器类将包含一个元素的JSONArray解析为一个String数组时,我收到一个ArrayIndexOutOfBoundsException异常。如何避免在我的resultArray中使用空字符串来补偿异常?我不想使用空字符串,因为它仍然可以在列表视图中选择。解析JSON数组时解析Android:ArrayIndexOutOfBoundsException

解析代码:

try 
    { 
     jArray = new JSONArray(result); 
     // Taking a peek at the contents 
     Log.e("log_tag", jArray.getJSONObject(0).getString(queryID)); 

     //For some reason if I don't do this 
     // I get ArrayIndexOutOfBoundsException. 
     if (jArray.length() == 1) 
     { 
      resultArray = new String[2]; 
      resultArray[1] = ""; 
     } 
     else  
      resultArray = new String[jArray.length()]; 
     for(int i = 0; i < jArray.length(); i++) 
     { 
      resultArray[i] = jArray.getJSONObject(i).getString(queryID);  
     } 
    } 

    catch(JSONException e) 
    { 
     throw new NullResultFromServerException("No results from server."); 
    } 
+1

请加堆栈跟踪并提到在那里你到底得到错误。 – MByD

回答

0
for(int i = 0; i < jArray.length(); i++) 
     { 
       String empty= jArray.getJSONObject(i).getString(queryID); 
       empty=empty.trim(); //this will remove the blank white space 
      if(!empty.equalsIgnoreCase("")) 
       resultArray[i] = empty; 
     }