【发布时间】:2014-09-13 03:40:16
【问题描述】:
我找不到导致 IndexOutOfBoundsException 的错误。
我用一个简单的 Arrayadapter 设置了一个 Spinner。我正在将文件夹 als 数组中的文件名添加到我的 ArrayAdapter。直到现在,当我从删除其中一个文件的另一项活动中恢复时,这一直有效。
现在每次我启动应用程序时都会抛出异常,我无法找出它崩溃的原因。
这是我设置 Spinner 的方法:
private void setupSpinner(final Context ctx) {
final Context context = ctx;
navSpinner = (Spinner)findViewById(R.id.nav_spinner);
navSpinnerAdapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, FileUtilities.getProjectNames());
navSpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
navSpinner.setAdapter(navSpinnerAdapter);
navSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
pdfView.recycle();
String path = FileUtilities.PFAD_PROJEKTE+"/"+parent.getItemAtPosition(position).toString();
gewaehlteProjekte = new ArrayList<String>();
gewaehlteProjekte.add(path);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(SettingsActivity.KEY_PREF_PROJECT, position);
editor.commit();
new updatePresentationFolder(context).execute();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
if(sharedPref.contains(SettingsActivity.KEY_PREF_PROJECT)) {
navSpinner.setSelection(sharedPref.getInt(SettingsActivity.KEY_PREF_PROJECT, 0));
}
}
这里是我的 Stacktrace:
我唯一发现的是,这发生在我设置 on item selected listener 的行中。
07-22 13:01:59.230 9733-9733/lp.german.bischofshofpresenter.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.IndexOutOfBoundsException: Invalid index 3, size is 3
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
at java.util.ArrayList.get(ArrayList.java:304)
at android.widget.ArrayAdapter.getItem(ArrayAdapter.java:337)
at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:390)
at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
at android.widget.Spinner.makeAndAddView(Spinner.java:390)
at android.widget.Spinner.layout(Spinner.java:341)
at android.widget.Spinner.onLayout(Spinner.java:305)
at android.view.View.layout(View.java:11283)
at android.view.ViewGroup.layout(ViewGroup.java:4224)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:925)
at android.view.View.layout(View.java:11283)
at android.view.ViewGroup.layout(ViewGroup.java:4224)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:925)
at android.view.View.layout(View.java:11283)
at android.view.ViewGroup.layout(ViewGroup.java:4224)
at android.widget.FrameLayout.onLayout(FrameLayout.java:431)
at android.view.View.layout(View.java:11283)
at android.view.ViewGroup.layout(ViewGroup.java:4224)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1628)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1486)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1399)
at android.view.View.layout(View.java:11283)
at android.view.ViewGroup.layout(ViewGroup.java:4224)
at android.widget.FrameLayout.onLayout(FrameLayout.java:431)
at android.view.View.layout(View.java:11283)
at android.view.ViewGroup.layout(ViewGroup.java:4224)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1489)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
任何帮助表示赞赏;)
【问题讨论】:
标签: android spinner android-arrayadapter indexoutofboundsexception