2013-03-26 118 views
2

我必須開發一個Android應用程序。在這裏,我收到以下錯誤:java.lang.IndexOutOfBoundsException:索引1無效,大小爲1

03-26 21:29:00.394: E/AndroidRuntime(684): FATAL EXCEPTION: main 
03-26 21:29:00.394: E/AndroidRuntime(684): java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1 
03-26 21:29:00.394: E/AndroidRuntime(684): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257) 
03-26 21:29:00.394: E/AndroidRuntime(684): at java.util.ArrayList.get(ArrayList.java:311) 
03-26 21:29:00.394: E/AndroidRuntime(684): at com.xmlparsing.MainActivity.loadXMLData(MainActivity.java:303) 
03-26 21:29:00.394: E/AndroidRuntime(684): at com.xmlparsing.MainActivity.access$2(MainActivity.java:118) 
03-26 21:29:00.394: E/AndroidRuntime(684): at com.xmlparsing.MainActivity$GetXmlFiles.onPostExecute(MainActivity.java:369) 
03-26 21:29:00.394: E/AndroidRuntime(684): at com.xmlparsing.MainActivity$GetXmlFiles.onPostExecute(MainActivity.java:1) 
03-26 21:29:00.394: E/AndroidRuntime(684): at android.os.AsyncTask.finish(AsyncTask.java:417) 
03-26 21:29:00.394: E/AndroidRuntime(684): at android.os.AsyncTask.access$300(AsyncTask.java:127) 
03-26 21:29:00.394: E/AndroidRuntime(684): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429) 
03-26 21:29:00.394: E/AndroidRuntime(684): at android.os.Handler.dispatchMessage(Handler.java:99) 
03-26 21:29:00.394: E/AndroidRuntime(684): at android.os.Looper.loop(Looper.java:123) 
03-26 21:29:00.394: E/AndroidRuntime(684): at android.app.ActivityThread.main(ActivityThread.java:4627) 
03-26 21:29:00.394: E/AndroidRuntime(684): at java.lang.reflect.Method.invokeNative(Native Method) 
03-26 21:29:00.394: E/AndroidRuntime(684): at java.lang.reflect.Method.invoke(Method.java:521) 
03-26 21:29:00.394: E/AndroidRuntime(684): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
03-26 21:29:00.394: E/AndroidRuntime(684): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
03-26 21:29:00.394: E/AndroidRuntime(684): at dalvik.system.NativeStart.main(Native Method) 

在這裏,我下面的代碼使用:

String[] stockArrVideo = new String[Appscontent.Sub_arraylistvideo.size()]; 
stockArrVideo = Appscontent.Sub_arraylistvideo.toArray(stockArrVideo); 
for (String s : stockArrVideo) { 
    if (s.startsWith(number)) { 
     String _Substring; 
     _Substring = s.substring(1); 
     if(_Substring.equals("")||_Substring == null) { 
      _Substring = "No Records"; 
     } 
     Appscontent.Sub_arraylistvideosub.add(_Substring); 
    } 
    h++; 
}   

如果數據是空的,這意味着我必須顯示「無記錄」的消息。否則顯示正確的數據。

TextView mVideo = new TextView(this); 
System.out.println(Appscontent.Sub_arraylistvideosub.get(j)); 
mVideo.setText(Appscontent.Sub_arraylistvideosub.get(j)); 
mVideo.setLayoutParams(textLayoutParams); 
mVideo.setBackgroundColor(Color.BLACK); 

這裏我寫了檢查空數據的代碼。

是什麼導致此異常?

+0

解釋你在做什麼。 – Tareq 2013-03-26 16:10:17

回答

6
IndexOutOfBoundsException: Invalid index 1, size is 1 

how can i resolve these error ???

你需要檢查你的數組的大小,這個問題似乎發生有:Appscontent.Sub_arraylistvideosub.get(j) 簡單的檢查,如果你的索引試圖使用它,就像之前是有效的:

if(j < Appscontent.Sub_arraylistvideosub.length) 
    System.out.println(Appscontent.Sub_arraylistvideosub.get(j)); 
相關問題