首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我们不在bindView中使用moveToFirst()呢?

为什么我们不在bindView中使用moveToFirst()呢?
EN

Stack Overflow用户
提问于 2020-11-13 23:07:20
回答 1查看 59关注 0票数 2

在实现onLoadFinished()时,它需要moveToFirst()很好地工作,但是为什么在为CursorAdapter实现bindView()时不需要这样做呢?什么时候使用它?

onLoadFinished:

代码语言:javascript
运行
复制
@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));

    }
}

bindView:

代码语言:javascript
运行
复制
@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);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-21 07:19:20

API在CursorAdapter.bindView:@param cursor The cursor from which to get the data. The cursor is already moved to the correct position.中显式地声明,因此moveToFirst已经为您完成了。在数据库上的查询返回的记录中,需要执行此操作。如果没有找到记录,moveToFirst将按照API描述:Move the cursor to the first row. This method will return false if the cursor is empty.返回false

onLoadFinished并不是CursorAdapter的成员,因此不适合这样做。

你好,迈克

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64829157

复制
相关文章

相似问题

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