Android 游标越界异常
我正在从游标中提取数据。使用此光标,我正在填充单选按钮的文本。当显示活动时,它工作正常,但当我尝试选择单选按钮时,我再次尝试访问我的光标,此时我将光标移出边界异常。请帮帮我Android 游标越界异常,android,cursor,radio-button,Android,Cursor,Radio Button,我正在从游标中提取数据。使用此光标,我正在填充单选按钮的文本。当显示活动时,它工作正常,但当我尝试选择单选按钮时,我再次尝试访问我的光标,此时我将光标移出边界异常。请帮帮我 Cursor cur=db.getForcemodLevelForMenuitem(mnuItmID); cur.moveToFirst(); while (cur.isAfterLast() == false) { cnt=1; //Level 1 if(c
Cursor cur=db.getForcemodLevelForMenuitem(mnuItmID);
cur.moveToFirst();
while (cur.isAfterLast() == false) {
cnt=1;
//Level 1
if(cur.getInt(0)==1)
{
LinearLayout level1Layout=(LinearLayout)findViewById(R.id.level1Layout);
level1Layout.setVisibility(View.VISIBLE);
//ArrayList menuitemForcemodMapsLevel1=db.GetBaseObjectListFromDBWhere("MenuitemForcemodMapping", "MenuitemID= "+mnuItmID+ " and Level="+1);
menuitemForcemodMapsLevel1=db.getForcemodDetailsForMenuitem(mnuItmID,1);
RadioGroup level1_rg=(RadioGroup) findViewById(R.id.level1_rg);
RadioButton[] rblevel1=new RadioButton[menuitemForcemodMapsLevel1.getCount()];
menuitemForcemodMapsLevel1.moveToFirst();
int i=0;
while (menuitemForcemodMapsLevel1.isAfterLast() == false) {
rblevel1[i] =new RadioButton(AddPopupMenuItem.this);
rblevel1[i].setText(menuitemForcemodMapsLevel1.getString(1).substring(0));
rblevel1[i].setTextColor(R.color.black);
level1_rg.addView(rblevel1[i]);
rblevel1[i].setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
menuitemForcemodMapsLevel1.moveToPosition(i);
forceModNameList.add(menuitemForcemodMapsLevel1.getString(1).substring(0));
}
});
i++;
menuitemForcemodMapsLevel1.moveToNext();
}
menuitemForcemodMapsLevel1.close();
rblevel1=null;
}
}
cur.moveToNext();
}
cur.close();
db.close();
}
}
我在这条线上出错了
:forceModNameList.add(menuitemForcemodMapsLevel1.getString(1).substring(0));
谢谢,
Neha请用这个,我想它会解决你的问题
Cursor c;
if(c.moveToFirst())
{
do
{
// perform operation in this blocks
}while(c.moveToNext());
}
您已在以下位置检索到第一个元素: rblevel1[i].SetTextMenuItemForceModMapsLevel 1.getString1.substring0 因此光标向前移动。然后你又在问同样的问题。光标不能向后移动,默认情况下只能向前移动。所以你得到了这个错误 为什么不将值保存在字符串中,这样就可以在无需再次检索的情况下再次使用它呢
我相信这将简化您的代码并解决问题。试试。如果您有任何疑问,请告诉我您应该先查看moveToFirst的电话。如果返回false,则光标为空,您不应进入do while循环。是的,Samuel,对此表示抱歉。这一次是离开办公室,所以它的答复非常紧急so@RameshSolanki&Samuel,我相信这里的问题不是游标为空,因为他只检索了一次第一个元素,而再次尝试检索同一个元素时出错。这就是问题所在。