blu*_*sky 0 blackberry java-me
下面的代码在Field F = getField(counter)行抛出一个IndexOutOfBoundsException; 它为什么被抛出?当然,该字段存在是因为我正在基于fieldcount进行循环.或者管理员中的列表字段是否不是连续的?如果是这种情况,我应该如何从屏幕中删除类型为MyButtonField的字段
谢谢
int fieldCount = getFieldCount() - 1;
if(fieldCount > 1){
for(int counter = 0; counter <= fieldCount ; ++counter){
Field f = getField(counter);
if(f instanceof MyButtonField){
delete(f);
}
}
}
Run Code Online (Sandbox Code Playgroud)
您没有指定什么delete(f),但如果它从字段列表中删除它,那么您的"有效计数"将有效减少.
要稍微重写一下并解决问题:
for (int index = getFieldCount() - 1; index >= 0; index--){
Field f = getField(index);
if (f instanceof MyButtonField) {
delete(f);
}
}
Run Code Online (Sandbox Code Playgroud)
这将从字段的末尾而不是从开头开始,所以如果你删除一个条目并且一切都洗牌都没关系 - 洗牌的项目将是你已经看过的项目.
| 归档时间: |
|
| 查看次数: |
191 次 |
| 最近记录: |