2013-09-01 59 views
0

我使用一個ArrayList遍歷應用程序的聯繫人列表,併發送短信到了,我有以下使用這些數字:ArrayList的錯誤IndexOutOfBounds異常

ArrayList<String> contacts = new ArrayList(); 
         List<String> list = SM.getAllValue(); 
          for(String string : list){ 
sb.append(string.toString()); 
           contacts.add(string); 
           } 
          for(int i = 0; i <= contacts.size(); i++){ 
           String numberToSend = contacts.get(i).toString(); 
           sendSMS(numberToSend, sms); 
          } 

代碼SM.getAllValues()返回用戶的所有聯繫人的喜好在List(s)。該項目工程─消息被髮送,但應用程序崩潰每一次,給在logcat中的以下內容:

09-01 20:02:44.852: E/AndroidRuntime(19151): FATAL EXCEPTION: main 
09-01 20:02:44.852: E/AndroidRuntime(19151): java.lang.IndexOutOfBoundsException: Invalid index 3, size is 3 
09-01 20:02:44.852: E/AndroidRuntime(19151): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257) 
09-01 20:02:44.852: E/AndroidRuntime(19151): at java.util.ArrayList.get(ArrayList.java:311) 
09-01 20:02:44.852: E/AndroidRuntime(19151): at com.vaw.selfhelp.SmsActivity$4.onClick(SmsActivity.java:163) 
09-01 20:02:44.852: E/AndroidRuntime(19151): at android.view.View.performClick(View.java:2485) 
09-01 20:02:44.852: E/AndroidRuntime(19151): at android.view.View$PerformClick.run(View.java:9080) 
09-01 20:02:44.852: E/AndroidRuntime(19151): at android.os.Handler.handleCallback(Handler.java:587) 
09-01 20:02:44.852: E/AndroidRuntime(19151): at android.os.Handler.dispatchMessage(Handler.java:92) 
09-01 20:02:44.852: E/AndroidRuntime(19151): at android.os.Looper.loop(Looper.java:130) 
09-01 20:02:44.852: E/AndroidRuntime(19151): at android.app.ActivityThread.main(ActivityThread.java:3687) 
09-01 20:02:44.852: E/AndroidRuntime(19151): at java.lang.reflect.Method.invokeNative(Native Method) 
09-01 20:02:44.852: E/AndroidRuntime(19151): at java.lang.reflect.Method.invoke(Method.java:507) 
09-01 20:02:44.852: E/AndroidRuntime(19151): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 
09-01 20:02:44.852: E/AndroidRuntime(19151): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 
09-01 20:02:44.852: E/AndroidRuntime(19151): at dalvik.system.NativeStart.main(Native Method) 

行163:

String numberToSend = contacts.get(i).toString(); 

請幫助:)

回答

1

變化

for(int i = 0; i <= contacts.size(); i++){ 

for(int i = 0; i < contacts.size(); i++){ 
+0

請解釋爲什麼,或OP和未來的訪問者得到修復,但不知道爲什麼要再次避免它。 – Simon