我有下一個錯誤:java.lang.IndexOutOfBoundsException:Index:0,Size:0我希望有人可以幫我解決這個問題。我想我需要檢查字符串不是null,但我不知道如何在下一個代碼中實現它。如何在switch-case上實現outofbound
這是我的代碼:
03-25 15:22:40.893: E/AndroidRuntime(617): FATAL EXCEPTION: main
03-25 15:22:40.893: E/AndroidRuntime(617): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
03-25 15:22:40.893: E/AndroidRuntime(617): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
03-25 15:22:40.893: E/AndroidRuntime(617): at java.util.ArrayList.get(ArrayList.java:304)
03-25 15:22:40.893: E/AndroidRuntime(617): at android.widget.ArrayAdapter.getItem(ArrayAdapter.java:337)
03-25 15:22:40.893: E/AndroidRuntime(617): at android.widget.AdapterView.getItemAtPosition(AdapterView.java:763)
03-25 15:22:40.893: E/AndroidRuntime(617): at it.nad.cartellecliniche.PatientPageActivity$1.onItemClick(PatientPageActivity.java:224)
03-25 15:22:40.893: E/AndroidRuntime(617): at android.widget.AdapterView.performItemClick(AdapterView.java:298)
03-25 15:22:40.893: E/AndroidRuntime(617): at android.widget.AbsListView.performItemClick(AbsListView.java:1086)
03-25 15:22:40.893: E/AndroidRuntime(617): at it.nad.cartellecliniche.PatientPageActivity.fillVisiteList(PatientPageActivity.java:253)
03-25 15:22:40.893: E/AndroidRuntime(617): at it.nad.cartellecliniche.PatientPageActivity.onTaskComplete(PatientPageActivity.java:593)
03-25 15:22:40.893: E/AndroidRuntime(617): at it.nad.cartellecliniche.asynctask.SearchVisiteTask.onPostExecute(SearchVisiteTask.java:263)
03-25 15:22:40.893: E/AndroidRuntime(617): at it.nad.cartellecliniche.asynctask.SearchVisiteTask.onPostExecute(SearchVisiteTask.java:1)
03-25 15:22:40.893: E/AndroidRuntime(617): at android.os.AsyncTask.finish(AsyncTask.java:631)
03-25 15:22:40.893: E/AndroidRuntime(617): at android.os.AsyncTask.access$600(AsyncTask.java:177)
03-25 15:22:40.893: E/AndroidRuntime(617): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
03-25 15:22:40.893: E/AndroidRuntime(617): at android.os.Handler.dispatchMessage(Handler.java:99)
03-25 15:22:40.893: E/AndroidRuntime(617): at android.os.Looper.loop(Looper.java:137)
03-25 15:22:40.893: E/AndroidRuntime(617): at android.app.ActivityThread.main(ActivityThread.java:4745)
03-25 15:22:40.893: E/AndroidRuntime(617): at java.lang.reflect.Method.invokeNative(Native Method)
03-25 15:22:40.893: E/AndroidRuntime(617): at java.lang.reflect.Method.invoke(Method.java:511)
03-25 15:22:40.893: E/AndroidRuntime(617): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
03-25 15:22:40.893: E/AndroidRuntime(617): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-25 15:22:40.893: E/AndroidRuntime(617): at dalvik.system.NativeStart.main(Native Method)
public void onTaskComplete(Object[] output) {
super.onTaskComplete(output);
Integer resultOperation = (Integer) output[0];
if (output != null && resultOperation != 500) {
String typeTask = (String) output[1];
if (typeTask.equals("SearchListVisite")) {
switch (resultOperation) {
case 200: {
Visita[] visite_current_patient = (Visita[]) output[2];
fillVisiteList(visite_current_patient);
break;
}
case 204: {
Visita[] visitaEmpty = createVisteListEmpty();
fillVisiteList(visitaEmpty);
break;
}
}
}
} else {
CharSequence testo = "Errore!";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(this, testo, duration);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
onBackPressed();
}
}
發佈堆棧跟蹤請 – kmera
你有一個空對象「輸出」整數resultOperation =(整數)輸出[0];'你應該檢查**之前使用其元素數組**的長度。有**無元素0 **,如果長度爲0. –