什么是 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;
}
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() 方法时,它会将光标指针指向第一个位置。现在您可以访问第一条记录中的数据
以上代码表明您正在尝试读取数据,但缺少一些信息。
我必须理解 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;
}
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() 方法时,它会将光标指针指向第一个位置。现在您可以访问第一条记录中的数据
以上代码表明您正在尝试读取数据,但缺少一些信息。