什么是 Cursor 以及它的作用(在本例中)?

What is a Cursor and what does it do (in this case)?

我必须理解 android 工作室的一些 java 代码,但由于我对 Java 和 android 都是新手,所以我有一个问题。

有谁知道 Cursor 到底是什么,它在这种情况下究竟做了什么?

private Movie cursorToMovie (Cursor cursor)
    {
        Movie movie = new Movie();
        movie.setId(cursor.getInt(0));
        movie.setName(cursor.getString(1));
        movie.setGenre(cursor.getString(2));
        movie.setYear(cursor.getInt(3));
        movie.setSynopsis(cursor.getString(4));

        return movie;
    }


    public List<Movie> getAllMovies()
    {
        open();

        List<Movie> movieList = new ArrayList<>();

        Cursor cursor = db.query(Movie.TABLE_NAME, MovieAllColumns, null, null, null, null, null);
        cursor.moveToFirst();

        while (!cursor.isAfterLast())
        {
            Movie movie = cursorToMovie(cursor);
            movieList.add(movie);
            cursor.moveToNext();
        }

        cursor.close();
        close();
        return movieList;

    }

来自documentation

This interface provides random read-write access to the result set returned by a database query.

请注意,此描述并不完全准确,因为结果集(数据)不一定来自数据库(请参阅 ContentProvider)。

游标是表示任何数据库的二维 table 的界面。当您尝试使用 SELECT 语句检索一些数据时,数据库将首先创建一个 Cursor 对象和 return 它对您的引用。

此 returned 引用的指针指向第 0 个位置,否则称为游标的第一个位置,因此当您想从游标中检索数据时,必须先移动到第一条记录,所以我们必须使用 moveToFirst

当您调用 Cursor 上的 moveToFirst() 方法时,它会将光标指针指向第一个位置。现在您可以访问第一条记录中的数据

以上代码表明您正在尝试读取数据,但缺少一些信息。