Android光标问题

Android光标问题,android,cursor,Android,Cursor,所以我试图将SQLite数据库中的值放入游标,然后选择一个随机值。我可以用getString()读取游标,就像我通常在方法中一样,但是在它返回游标之后,它就不能正常工作了。我不知道为什么。。 下面是我从数据库中获取光标的方法。它似乎工作正常 public Cursor getRandomText(String Rating) { Cursor cursor = myDatabase.query("Elec0RandTexts", new String[]

所以我试图将SQLite数据库中的值放入游标,然后选择一个随机值。我可以用getString()读取游标,就像我通常在方法中一样,但是在它返回游标之后,它就不能正常工作了。我不知道为什么。。 下面是我从数据库中获取光标的方法。它似乎工作正常

        public Cursor getRandomText(String Rating)
    {

        Cursor cursor = myDatabase.query("Elec0RandTexts", new String[] {"Message"}, "Rating=?", 
                new String[]{Rating}, null, null, null);
        cursor.moveToFirst();

        cursor.close();

        return cursor;

    }
这是我返回光标后读取光标的代码

            Cursor result = dbh.getRandomText(Rating);
        result.moveToFirst();

        int RandText = rand.nextInt(result.getCount());

        result.moveToPosition(RandText);
        Toast.makeText(getApplicationContext(), "" + result.getString(RandText), Toast.LENGTH_LONG).show();

        result.close();
我可能犯了一个愚蠢的错误,却没有意识到这一点,但我无法理解这一点

谢谢

~Elec0

之后,您将无法从光标获取任何数据-光标将关闭。删除此行。

在返回光标之前,请先关闭()光标。从返回到的位置,您将尝试调用moveToFirst()。如果光标已关闭,则无法执行此操作


在getRandomText(String)方法中,应该从游标返回有意义的数据,而不是游标对象本身。这样,创建游标的方法可以继续关闭游标。(它应该发生在方法的末尾)

您不能在返回的游标上调用close()然后使用它。把那条线移走,用完后只关上一次,这是真的。那我就这么做。谢谢
cursor.close(); // in getRandomText()