android - CursorIndexOutOfBoundsException: Index 1 requested, with a size of 1 -
i'm getting following warning in debugger. code consists of users , friends. @ point in friendsdao username users brought in. right i'm running cursor issue below. appreciated.
05-30 10:32:15.098 1957-1957/com.example.mms.mobile e/androidruntime﹕ fatal exception: main process: com.example.mms.mobile, pid: 1957 android.database.cursorindexoutofboundsexception: index 1 requested, size of 1 @ android.database.abstractcursor.checkposition(abstractcursor.java:426) @ android.database.abstractwindowedcursor.checkposition(abstractwindowedcursor.java:136) @ android.database.abstractwindowedcursor.getlong(abstractwindowedcursor.java:74) @ com.example.mms.mobile.userdao.cursortouser(userdao.java:182) @ com.example.mms.mobile.userdao.getuser(userdao.java:113) @ com.example.mms.mobile.friendsdao.cursortofriends(friendsdao.java:156) @ com.example.mms.mobile.friendsdao.createfriend(friendsdao.java:73) @ com.example.mms.mobile.addfriendactivity.onclick(addfriendactivity.java:120) @ android.view.view.performclick(view.java:4756) @ android.view.view$performclick.run(view.java:19749) @ android.os.handler.handlecallback(handler.java:739) @ android.os.handler.dispatchmessage(handler.java:95) @ android.os.looper.loop(looper.java:135) @ android.app.activitythread.main(activitythread.java:5221) @ java.lang.reflect.method.invoke(native method) @ java.lang.reflect.method.invoke(method.java:372) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:899) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:694) my code userdao , friendsdao below:
//userdao public class userdao { public static final string tag = "userdao"; // database fields private sqlitedatabase database; private dbhelper dbhelper; private context context; private string[] allcolumns = { dbhelper.user_id, dbhelper.user_name , dbhelper.password , dbhelper.county , dbhelper.email , dbhelper.country }; public userdao(context context) { this.context = context; dbhelper = new dbhelper(context); // open database try { open(); } catch (sqlexception e) { log.e(tag, "sqlexception on opening database " + e.getmessage()); e.printstacktrace(); } } public void open() throws sqlexception { database = dbhelper.getwritabledatabase(); } public void close() { dbhelper.close(); } public user createuser(string usrname, string pass, string county, string email, string country) { contentvalues values = new contentvalues(); values.put(dbhelper.user_name ,usrname); values.put(dbhelper.password ,pass); values.put(dbhelper.county ,county); values.put(dbhelper.email ,email); values.put(dbhelper.country,country); long insertid = database .insert(dbhelper.table_login, null, values); cursor cursor = database.query(dbhelper.table_login, allcolumns, dbhelper.user_id + " = " + insertid, null, null,null,null); cursor.movetofirst(); user newuser = cursortouser(cursor); cursor.close(); return newuser; } public user getuser(string name) { cursor cursor = database.query(dbhelper.table_login, allcolumns, dbhelper.user_name + " = ?", new string[] { string.valueof(name) }, null, null, null); //if (cursor != null) { cursor.movetofirst(); while (!cursor.isafterlast()) { user user = cursortouser(cursor); cursor.movetonext(); } cursor.close(); return user; } protected user cursortouser(cursor cursor) { user user = new user(); user.setid(cursor.getlong(0)); user.setuser(cursor.getstring(1)); user.setpass(cursor.getstring(2)); user.setcounty(cursor.getstring(3)); user.setemail(cursor.getstring(4)); user.setcountry(cursor.getstring(5)); return user; } } and friendsdao:
public class frienddao { public static final string tag = "frienddao"; // database fields private sqlitedatabase pdatabase; private dbhelper pdbhelper; private context pcontext; private string[] pallcolumns = { dbhelper.friend_id, dbhelper.friend_username, dbhelper.list1_id, dbhelper.list2_id, dbhelper.list3_id, dbhelper.location, dbhelper.friend_name, dbhelper.friend_address, dbhelper.friend_phone_number }; public frienddao(context context) { this.pcontext = context; pdbhelper = new dbhelper(context); // open database try { open(); } catch (sqlexception e) { log.e(tag, "sqlexception on opening database " + e.getmessage()); e.printstacktrace(); } } public void open() throws sqlexception { pdatabase = pdbhelper.getwritabledatabase(); } public void close() { pdbhelper.close(); } public friend createfriend(string usern, integer list1id, integer list2id, integer list3id, string loc, string name, string address, string phone) { contentvalues values = new contentvalues(); values.put(dbhelper.friend_username, usern); values.put(dbhelper.list1_id, list1id); values.put(dbhelper.list2_id, list2id); values.put(dbhelper.list3_id, list3id); values.put(dbhelper.location, loc); values.put(dbhelper.friend_name, name); values.put(dbhelper.friend_address, address); values.put(dbhelper.friend_phone_number, phone); long insertid = pdatabase .insert(dbhelper.table_friends, null, values); cursor cursor = pdatabase.query(dbhelper.table_friends, pallcolumns, dbhelper.friend_id + " = " + insertid, null, null,null,null); cursor.movetofirst(); friend newfriend = cursortofriend(cursor); cursor.close(); return newfriend; } protected friend cursortofriend(cursor cursor) { friend friend = new friend(); friend.setid(cursor.getlong(0)); // user id string usern = cursor.getstring(1); userdao dao = new userdao(pcontext); user user = dao.getuser(usern); if(user != null) friend.setuser(user); friend.setlocation(cursor.getstring(2)); friend.setlist1(cursor.getstring(3)); friend.setlist2id(cursor.getstring(4)); friend.setlist3id(cursor.getstring(5)); friend.setname(cursor.getstring(6)); friend.setaddress(cursor.getstring(7)); friend.setphonenumber(cursor.getstring(8)); return friend; } }
Comments
Post a Comment