最近在学习android遇到了点问题,请教大侠们一下。
在程序中我要监听spinner的选择事件,如下面代码,当spinner中的项为1的时候,即namearray=[]{"item1"},运行程序的时候就会出现异常,但当namearray的长度大约1的时候就不会,请教大侠们一下,这个问题该怎么解决。
public void InitNameSpinner() {
Spinner spinner=(Spinner)findViewById(R.id.selApp);
String[]namearray=new String[]{"item1","item2"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,namearray);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setVisibility(View.VISIBLE);
spinner.setOnItemSelectedListener(sellistener);
} public OnItemSelectedListener sellistener=new OnItemSelectedListener(){ @Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
} @Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}};
异常信息
:10-31 06:52:44.493: E/AndroidRuntime(2097): FATAL EXCEPTION: main
10-31 06:52:44.493: E/AndroidRuntime(2097): java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1
10-31 06:52:44.493: E/AndroidRuntime(2097): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
10-31 06:52:44.493: E/AndroidRuntime(2097): at java.util.Arrays$ArrayList.get(Arrays.java:66)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.ArrayAdapter.getItem(ArrayAdapter.java:337)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:390)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.Spinner.makeAndAddView(Spinner.java:534)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.Spinner.layout(Spinner.java:485)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.Spinner.onLayout(Spinner.java:449)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.View.layout(View.java:13754)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewGroup.layout(ViewGroup.java:4362)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1638)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.LinearLayout.onLayout(LinearLayout.java:1422)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.View.layout(View.java:13754)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewGroup.layout(ViewGroup.java:4362)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.LinearLayout.onLayout(LinearLayout.java:1420)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.View.layout(View.java:13754)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewGroup.layout(ViewGroup.java:4362)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.View.layout(View.java:13754)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewGroup.layout(ViewGroup.java:4362)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.LinearLayout.onLayout(LinearLayout.java:1420)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.View.layout(View.java:13754)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewGroup.layout(ViewGroup.java:4362)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.View.layout(View.java:13754)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewGroup.layout(ViewGroup.java:4362)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1866)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1687)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.Choreographer.doCallbacks(Choreographer.java:555)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.Choreographer.doFrame(Choreographer.java:525)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.os.Handler.handleCallback(Handler.java:615)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.os.Handler.dispatchMessage(Handler.java:92)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.os.Looper.loop(Looper.java:137)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.app.ActivityThread.main(ActivityThread.java:4745)
10-31 06:52:44.493: E/AndroidRuntime(2097): at java.lang.reflect.Method.invokeNative(Native Method)
10-31 06:52:44.493: E/AndroidRuntime(2097): at java.lang.reflect.Method.invoke(Method.java:511)
10-31 06:52:44.493: E/AndroidRuntime(2097): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
10-31 06:52:44.493: E/AndroidRuntime(2097): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-31 06:52:44.493: E/AndroidRuntime(2097): at dalvik.system.NativeStart.main(Native Method)
在程序中我要监听spinner的选择事件,如下面代码,当spinner中的项为1的时候,即namearray=[]{"item1"},运行程序的时候就会出现异常,但当namearray的长度大约1的时候就不会,请教大侠们一下,这个问题该怎么解决。
public void InitNameSpinner() {
Spinner spinner=(Spinner)findViewById(R.id.selApp);
String[]namearray=new String[]{"item1","item2"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,namearray);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setVisibility(View.VISIBLE);
spinner.setOnItemSelectedListener(sellistener);
} public OnItemSelectedListener sellistener=new OnItemSelectedListener(){ @Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
} @Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}};
异常信息
:10-31 06:52:44.493: E/AndroidRuntime(2097): FATAL EXCEPTION: main
10-31 06:52:44.493: E/AndroidRuntime(2097): java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1
10-31 06:52:44.493: E/AndroidRuntime(2097): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
10-31 06:52:44.493: E/AndroidRuntime(2097): at java.util.Arrays$ArrayList.get(Arrays.java:66)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.ArrayAdapter.getItem(ArrayAdapter.java:337)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:390)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.Spinner.makeAndAddView(Spinner.java:534)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.Spinner.layout(Spinner.java:485)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.Spinner.onLayout(Spinner.java:449)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.View.layout(View.java:13754)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewGroup.layout(ViewGroup.java:4362)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1638)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.LinearLayout.onLayout(LinearLayout.java:1422)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.View.layout(View.java:13754)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewGroup.layout(ViewGroup.java:4362)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.LinearLayout.onLayout(LinearLayout.java:1420)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.View.layout(View.java:13754)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewGroup.layout(ViewGroup.java:4362)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.View.layout(View.java:13754)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewGroup.layout(ViewGroup.java:4362)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.LinearLayout.onLayout(LinearLayout.java:1420)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.View.layout(View.java:13754)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewGroup.layout(ViewGroup.java:4362)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.View.layout(View.java:13754)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewGroup.layout(ViewGroup.java:4362)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1866)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1687)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.Choreographer.doCallbacks(Choreographer.java:555)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.Choreographer.doFrame(Choreographer.java:525)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.os.Handler.handleCallback(Handler.java:615)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.os.Handler.dispatchMessage(Handler.java:92)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.os.Looper.loop(Looper.java:137)
10-31 06:52:44.493: E/AndroidRuntime(2097): at android.app.ActivityThread.main(ActivityThread.java:4745)
10-31 06:52:44.493: E/AndroidRuntime(2097): at java.lang.reflect.Method.invokeNative(Native Method)
10-31 06:52:44.493: E/AndroidRuntime(2097): at java.lang.reflect.Method.invoke(Method.java:511)
10-31 06:52:44.493: E/AndroidRuntime(2097): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
10-31 06:52:44.493: E/AndroidRuntime(2097): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-31 06:52:44.493: E/AndroidRuntime(2097): at dalvik.system.NativeStart.main(Native Method)
解决方案 »
- 求助悬浮框updateViewLayout的问题,所有分数奉上
- Android程序加密
- 加急!Google Map 返回总是英文是怎么回事啊?
- eclipse下android程序下添加菜单运行时出现问题
- 3dmax材质导入到android opengl es
- JNI写的SO库文件中怎么打印变量?Log,printk和printf都用不了,自定义Log可以打印消息串。
- android 自学开发第一天 就遇到这么大问题,给看看啊,谢了
- Android UI设计原则
- Android 开源库获取途径整理
- 短信广播接收者,监听短信
- 如何实现类似google地图overlay功能
- 关于android显示子系统的认识-请指教
你的列表只有一项,索引1自然会报错
只能索引0
if(spinner.getCount()>1)
spinner.setOnItemSelectedListener(sellistener);
这样也会报同样的错误