GetView Vs. BindView in a custom CursorAdapter?

2022-08-31 19:51:32

所以,我正在观看这个视频 http://www.youtube.com/watch?v=N6YdwzAvwOA,Romain Guy正在展示如何使用该方法制作更高效的UI适配器代码。这是否也适用于 CursorAdapters?我当前正在使用 和 用于我的自定义光标适配器。我应该改用 getView 吗?getView()bindView()newView()


答案 1

CursorAdapter具有 该 委托 给 和 的实现,以强制行回收模式的方式。因此,如果您要覆盖 和 ,则无需对行回收执行任何特殊操作。getView()newView()bindView()CursorAdapternewView()bindView()


答案 2
/**
     * @see android.widget.ListAdapter#getView(int, View, ViewGroup)
     */
    public View getView(int position, View convertView, ViewGroup parent) {
        if (!mDataValid) {
            throw new IllegalStateException("this should only be called when the cursor is valid");
        }
        if (!mCursor.moveToPosition(position)) {
            throw new IllegalStateException("couldn't move cursor to position " + position);
        }
        View v;
        if (convertView == null) {
            v = newView(mContext, mCursor, parent);
        } else {
            v = convertView;
        }
        bindView(v, mContext, mCursor);
        return v;
    }

这个CursorAdapter源代码,显然cursorAdapter工作更多。


推荐