首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从mainclass获取返回字符串

如何从mainclass获取返回字符串
EN

Stack Overflow用户
提问于 2014-11-25 16:02:25
回答 3查看 90关注 0票数 0

DbHelper.java

代码语言:javascript
复制
public static String returntitle(Context context , String query) {
    DbHelper dbhelper = new DbHelper(context);
    SQLiteDatabase db = dbhelper.getReadableDatabase();
    // Cursor cursor = null;
    String temp_title = null;
    Cursor cursor = db.rawQuery(query, null);
    if (cursor.moveToFirst()) {
        do {
            temp_title = (cursor.getString(1));
        } while (cursor.moveToNext());
    }

    return temp_title;
}

如何在mainclass.java中获取temp_title

mainClass.java

代码语言:javascript
复制
private void gettitleform_db() {
    // TODO Auto-generated method stub
    String str = "SELECT cl_title_tb_resume FROM tb_resume WHERE _id = 2 ";
    String temp2 = DbHelper.returntitle(this, str);
    System.out.println(temp2);
}

上面的代码返回一个异常。我的代码出了什么问题。提前感谢

Logcat

代码语言:javascript
复制
11-25 13:08:52.330: W/ApplicationPackageManager(17274): getCSCPackageItemText()
11-25 13:08:52.390: D/mali_winsys(17274): new_window_surface returns 0x3000
11-25 13:08:58.145: W/ApplicationPackageManager(17274): getCSCPackageItemText()
11-25 13:08:58.160: D/AbsListView(17274): Get MotionRecognitionManager
11-25 13:08:58.175: E/CursorWindow(17274): Failed to read row 0, column 1 from a CursorWindow which has 1 rows, 1 columns.
11-25 13:08:58.175: D/AndroidRuntime(17274): Shutting down VM
11-25 13:08:58.175: W/dalvikvm(17274): threadid=1: thread exiting with uncaught exception (group=0x41770c08)
11-25 13:08:58.175: E/AndroidRuntime(17274): FATAL EXCEPTION: main
11-25 13:08:58.175: E/AndroidRuntime(17274): Process: com.absind.resumebuilder, PID: 17274
11-25 13:08:58.175: E/AndroidRuntime(17274): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.absind.resumebuilder/com.absind.resumebuilder.AddList}: java.lang.IllegalStateException: Couldn't read row 0, col 1 from CursorWindow.  Make sure the Cursor is initialized correctly before accessing data from it.
11-25 13:08:58.175: E/AndroidRuntime(17274):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2282)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2340)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at android.app.ActivityThread.access$800(ActivityThread.java:157)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at android.os.Handler.dispatchMessage(Handler.java:102)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at android.os.Looper.loop(Looper.java:157)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at android.app.ActivityThread.main(ActivityThread.java:5293)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at java.lang.reflect.Method.invokeNative(Native Method)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at java.lang.reflect.Method.invoke(Method.java:515)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1259)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at dalvik.system.NativeStart.main(Native Method)
11-25 13:08:58.175: E/AndroidRuntime(17274): 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.
11-25 13:08:58.175: E/AndroidRuntime(17274):    at android.database.CursorWindow.nativeGetString(Native Method)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at android.database.CursorWindow.getString(CursorWindow.java:438)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:51)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at com.absind.resumebuilder.DbHelper.returntitle(DbHelper.java:53)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at com.absind.resumebuilder.AddList.gettitleform_db(AddList.java:123)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at com.absind.resumebuilder.AddList.onCreate(AddList.java:42)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at android.app.Activity.performCreate(Activity.java:5389)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
11-25 13:08:58.175: E/AndroidRuntime(17274):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2246)
11-25 13:08:58.175: E/AndroidRuntime(17274):    ... 11 more
EN

回答 3

Stack Overflow用户

发布于 2014-11-25 16:10:03

无法从CursorWindow读取第0行、第1列。在从游标访问数据之前,请确保游标已正确初始化

票数 1
EN

Stack Overflow用户

发布于 2014-11-25 16:17:12

为什么您确定列索引是1?试试这个:

代码语言:javascript
复制
temp_title = cursor.getString(cursor.getColumnIndex("cl_title_tb_resume"));
票数 1
EN

Stack Overflow用户

发布于 2014-11-25 16:17:42

CursorWindow有%1行%1列。并且您正在访问编号为1的列,该列并不存在。将1更改为0。

代码语言:javascript
复制
temp_title = (cursor.getString(0));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27121469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档