我試圖在我的應用程序中實現分數功能,但我總是得到主標題中的相同錯誤,我的錯誤在以下按鈕錯誤-android.database.CursorIndexOutOfBoundsException:索引0請求,大小爲0
em=bundle.getString("EMAIL");
SQL usdbh =new SQL (this, "DBUsuarios", null, 1);
final SQLiteDatabase db = usdbh.getWritableDatabase();
button2.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0)
{
Cursor c = db.rawQuery(" SELECT p1,p2,p3,p4,p5 FROM Usuarios WHERE Email='"+em+"' ", null);
c.moveToFirst();
p1= c.getInt(0);
p2= c.getInt(1);
p3= c.getInt(2);
p4= c.getInt(3);
p5= c.getInt(4);
if(n7>p1){
db.execSQL("UPDATE Usuarios SET p1="+n7+" WHERE Email='"+em+"' ");
db.execSQL("UPDATE Usuarios SET p2="+p1+" WHERE Email='"+em+"' ");
db.execSQL("UPDATE Usuarios SET p3="+p2+" WHERE Email='"+em+"' ");
db.execSQL("UPDATE Usuarios SET p4="+p3+" WHERE Email='"+em+"' ");
db.execSQL("UPDATE Usuarios SET p5="+p4+" WHERE Email='"+em+"' ");
}
if(n7>p2&&n7<p1){
db.execSQL("UPDATE Usuarios SET p2="+n7+" WHERE Email='"+em+"' ");
db.execSQL("UPDATE Usuarios SET p3="+p2+" WHERE Email='"+em+"' ");
db.execSQL("UPDATE Usuarios SET p4="+p3+" WHERE Email='"+em+"' ");
db.execSQL("UPDATE Usuarios SET p5="+p4+" WHERE Email='"+em+"' ");
}
if(n7>p3&&n7<p2){
db.execSQL("UPDATE Usuarios SET p3="+n7+" WHERE Email='"+em+"' ");
db.execSQL("UPDATE Usuarios SET p4="+p3+" WHERE Email='"+em+"' ");
db.execSQL("UPDATE Usuarios SET p5="+p4+" WHERE Email='"+em+"' ");
}
if(n7>p4&&n7<p3){
db.execSQL("UPDATE Usuarios SET p4="+n7+" WHERE Email='"+em+"' ");
db.execSQL("UPDATE Usuarios SET p5="+p4+" WHERE Email='"+em+"' ");
}
if(n7>p5&&n7<p4){
db.execSQL("UPDATE Usuarios SET p5="+n7+" WHERE Email='"+em+"' ");
}
c.close();
Intent intent2 = new Intent(Cinco.this, MainActivity.class);
Bundle b = new Bundle();
b.putInt("PUNT", n7);
intent2.putExtras(b);
startActivity(intent2);
}
});
我做了同樣的光標在沒有錯誤MainActivity類別相同的,但它只是推杆的成績在textViews它沒有值插入
的分數正確地插入了表,但我總是得到「不幸的是,MyApp已經停止了。」 =( 任何想法? PD =這是我的第一個問題,所以要pattient,如果我做錯了=)
很明顯,你正在訪問數組中沒有元素的第0個位置,這就是'ArrayIndexOutOfBoundException'。看看你的堆棧跟蹤發生在哪一行,或者在這裏發佈你的堆棧跟蹤,然後相應地改變你的邏輯。 –