【发布时间】:2020-11-13 23:07:20
【问题描述】:
在实现onLoadFinished()时,它需要moveToFirst()才能正常工作,但是为什么在为CursorAdapter实现bindView()时不需要这个?什么时候使用?
onLoadFinished:
@Override
public void onLoadFinished(@NonNull Loader loader, Cursor data) {
if (data.moveToFirst()) {
int nameColumnIndex = data.getColumnIndexOrThrow(PetEntry.COLUMN_PET_NAME);
int breedColumnIndex = data.getColumnIndexOrThrow(PetEntry.COLUMN_PET_BREED);
mNameEditText.setText(data.getString(nameColumnIndex));
mBreedEditText.setText(data.getString(breedColumnIndex));
}
}
绑定视图:
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView name = view.findViewById(R.id.name);
TextView summary = view.findViewById(R.id.summary);
String nameString = cursor.getString(cursor.getColumnIndexOrThrow(PetEntry.COLUMN_PET_NAME));
String summaryString = cursor.getString(cursor.getColumnIndexOrThrow(PetEntry.COLUMN_PET_BREED));
name.setText(nameString);
summary.setText(summaryString);
}
【问题讨论】:
标签: java android sqlite cursor android-sqlite