Итак, я сейчас пытаюсь извлечь одну строку из моей базы данных, но при попытке я просто получаю эту ошибку.
2018-12-12 06:17:52.499 9065-9065/com.example.caesp.dmtool E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.caesp.dmtool, PID: 9065
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.caesp.dmtool/com.example.caesp.dmtool.CreateCharacter}: java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2955)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3030)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6938)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by: java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
at android.database.CursorWindow.nativeGetString(Native Method)
at android.database.CursorWindow.getString(CursorWindow.java:451)
at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:51)
at com.example.caesp.dmtool.CreateCharacter.onCreate(CreateCharacter.java:128)
at android.app.Activity.performCreate(Activity.java:7183)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2908)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3030)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6938)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Что касается моей базы данных, это выглядит так
@Override
public void onCreate(SQLiteDatabase db)
{
// query to create a new table named dog
String CampaignList = "CREATE TABLE Campaigns" +
"(CamName TEXT);";
db.execSQL(CampaignList);// execute the query
String CharacterList = "CREATE TABLE Characters" +
"(CharName TEXT," +
"Campaign TEXT," +
"Class TEXT," +
"Level INTEGER," +
"Race TEXT," +
"Player_Name TEXT," +
"STR INTEGER," +
"DEX INTEGER," +
"CON INTEGER," +
"INT INTEGER," +
"WIS INTEGER," +
"CHA INTEGER," +
"First INTEGER," +
"Second INTEGER," +
"Third INTEGER," +
"Fourth INTEGER," +
"Fifth INTEGER," +
"Sixth INTEGER," +
"Seventh INTEGER," +
"Eighth INTEGER," +
"Ninth INTEGER," +
"Acro INTEGER," +
"Anhan INTEGER," +
"Arc INTEGER," +
"Ath INTEGER," +
"Dec INTEGER," +
"His INTEGER," +
"Ins INTEGER," +
"Inti INTEGER," +
"Inves INTEGER," +
"Med INTEGER," +
"Nat INTEGER," +
"Perc INTEGER," +
"Perf INTEGER," +
"Pers INTEGER," +
"Rel INTEGER," +
"Slei INTEGER," +
"Ste INTEGER," +
"Sur INTEGER," +
"Prof_Bon INTEGER," +
"Attacks TEXT," +
"AC INTEGER," +
"InitBon INTEGER," +
"Spd INTEGER," +
"HP_Max INTEGER," +
"HP TEXT," +
"Hit_Die TEXT," +
"Equip TEXT," +
"Backstory TEXT," +
"ProfnLang TEXT," +
"Feats TEXT," +
"SSDC INTEGER," +
"SCA TEXT," +
"SAB INTEGER," +
"Spells TEXT" +
");";
db.execSQL(CharacterList);
} // end method onCreate
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion,
int newVersion)
{
} // end method onUpgrade
}
И мой метод get и часть действия, которое я пытаюсь выполнить, это
if (RQCode == 2){
CurrentName = extras.getString("CharName");
DatabaseConnector dc = new DatabaseConnector(this);
dc.open();
Cursor c = dc.getOneCharacter(CurrentName);
if (c != null && c.moveToFirst()){
Name.setText(c.getString(c.getColumnIndex("CharName")));
Player.setText(c.getString(c.getColumnIndex("Player_Name")));
Level.setText(c.getString(c.getColumnIndex("Level")));
Race.setText(c.getString(c.getColumnIndex("Race")));
Class.setText(c.getString(c.getColumnIndex("Class")));
STR.setText(c.getString(c.getColumnIndex("STR")));
DEX.setText(c.getString(c.getColumnIndex("DEX")));
CON.setText(c.getString(c.getColumnIndex("CON")));
INT.setText(c.getString(c.getColumnIndex("INT")));
WIS.setText(c.getString(c.getColumnIndex("WIS")));
CHA.setText(c.getString(c.getColumnIndex("CHA")));
Acro.setText(c.getString(c.getColumnIndex("Acro")));
Anhan.setText(c.getString(c.getColumnIndex("Anhan")));
Arc.setText(c.getString(c.getColumnIndex("Arc")));
Ath.setText(c.getString(c.getColumnIndex("Ath")));
Dec.setText(c.getString(c.getColumnIndex("Dec")));
His.setText(c.getString(c.getColumnIndex("His")));
Ins.setText(c.getString(c.getColumnIndex("Ins")));
Inti.setText(c.getString(c.getColumnIndex("Inti")));
Inves.setText(c.getString(c.getColumnIndex("Inves")));
Med.setText(c.getString(c.getColumnIndex("Med")));
Nat.setText(c.getString(c.getColumnIndex("Nat")));
Perc.setText(c.getString(c.getColumnIndex("Perc")));
Perf.setText(c.getString(c.getColumnIndex("Perf")));
Pers.setText(c.getString(c.getColumnIndex("Pers")));
Rel.setText(c.getString(c.getColumnIndex("Rel")));
Slei.setText(c.getString(c.getColumnIndex("Slei")));
Ste.setText(c.getString(c.getColumnIndex("Ste")));
Surv.setText(c.getString(c.getColumnIndex("Sur")));
AC.setText(c.getString(c.getColumnIndex("AC")));
Init.setText(c.getString(c.getColumnIndex("Init")));
Spd.setText(c.getString(c.getColumnIndex("Spd")));
HP.setText(c.getString(c.getColumnIndex("HP")));
HitDice.setText(c.getString(c.getColumnIndex("Hit_Die")));
ProfBon.setText(c.getString(c.getColumnIndex("Prof_Bon")));
Attacks.setText(c.getString(c.getColumnIndex("Attacks")));
Spells.setText(c.getString(c.getColumnIndex("Spells")));
SAB.setText(c.getString(c.getColumnIndex("SAB")));
SCA.setText(c.getString(c.getColumnIndex("SCA")));
SSDC.setText(c.getString(c.getColumnIndex("SSDC")));
First.setText(c.getString(c.getColumnIndex("First")));
Second.setText(c.getString(c.getColumnIndex("Second")));
Third.setText(c.getString(c.getColumnIndex("Third")));
Fourth.setText(c.getString(c.getColumnIndex("Fourth")));
Fifth.setText(c.getString(c.getColumnIndex("Fifth")));
Sixth.setText(c.getString(c.getColumnIndex("Sixth")));
Seventh.setText(c.getString(c.getColumnIndex("Seventh")));
Eighth.setText(c.getString(c.getColumnIndex("Eighth")));
Ninth.setText(c.getString(c.getColumnIndex("Ninth")));
ProfnLang.setText(c.getString(c.getColumnIndex("ProfnLang")));
Feats.setText(c.getString(c.getColumnIndex("Feats")));
Equipment.setText(c.getString(c.getColumnIndex("Equipment")));
Backstory.setText(c.getString(c.getColumnIndex("Backstory")));
}
}
По какой-то причине он застревает в Integer 'Init'.
сейчас моя главная цель - взять информацию, которую я извлекаюмоей базы данных и присоединить ее к группе представлений, которые я настроил в этом упражнении.Я буду работать до полудня, но сделаю все возможное, чтобы общаться с любым, кто хотел бы помочь.