4

CursorAdapterビューを作成してデータを入力するプロセスを分割する理由をお聞きしたいとnewView()思います 。bindView()BaseAdaptergetView()

4

2 に答える 2

4

CursorAdapter.javaのソース コードから、CursorAdapterextends BaseAdapter. そして、関数の実装
を見ることができます:getView()

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;
    } 

通常行うことgetView()(convertView が null の場合はビューをインフレートし、それ以外の場合はビューを再利用する) を行うため、開発者が簡単に使用できるようにするか、ユーザーに ViewHolder パターンを使用するように強制します。

PS: 一部の開発者は、 newView() 実装で bindViews() 関数を呼び出します。ソース コードから、その必要がないことがわかります。

于 2013-09-01T19:05:36.123 に答える