CursorAdapter
ビューを作成してデータを入力するプロセスを分割する理由をお聞きしたいとnewView()
思います 。bindView()
BaseAdapter
getView()
1866 次
2 に答える
4
CursorAdapter.javaのソース コードから、CursorAdapter
extends 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 に答える