So I'm currently trying to pull a single row from my database, but when I try I just get this error.
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)
As far as my Database goes it looks like this
@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
}
And my get method and part of the activity I'm trying to run is this
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")));
}
}
For some reason it gets stuck at the 'Init' Integer.
right now my main goal is to take the information that I'm pulling out of my database and attach it to the bunch of views that I have set up in this activity. I'll be going to work until about noon, but I'll do my best to communicate with any one who'd like to help.
public final static String) and using them for both DB creation and Queries.