Spinner.setSelection(3)报错直接闪退,Spinner.setSelection(3,false)可以被catch到而且不闪退是为什么
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
a1.setSelection(3);//a1是一个spinner,只有三个选项,position选3会数组越界,这样会闪退
}catch(Exception e){
Toast.makeText(MainActivity.this,"错误",Toast.LENGTH_LONG).show();
}
}
}
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
a1.setSelection(3,false);//a1是一个spinner,只有三个选项,position选3会数组越界,这样不会闪退,而且能被catch到
}catch(Exception e){
Toast.makeText(MainActivity.this,"错误",Toast.LENGTH_LONG).show();
}
}
}
闪退的时候显示致命错误数组越界,第二个不会报错
public void setSelection(int position, boolean animate) {
// Animate only if requested position is already on screen somewhere
boolean shouldAnimate = animate && mFirstPosition <= position &&
position <= mFirstPosition + getChildCount() - 1;
setSelectionInt(position, shouldAnimate);
}
@Override
public void setSelection(int position) {
setNextSelectedPositionInt(position);
requestLayout();
invalidate();
}
这两个用法区别很大哦
你看看你的Spinner所用到的数据有多长啊,长度小于4就不行哦