CursorAdapter
和之间的确切区别是什么?
ResourceCursorAdapter
?
有人可以解释override
所需的api是什么
在实现我自己的ResourceCursorAdapter
?
我已经查看了ResourceCursorAdapter
文档并且能够
弄清楚它的构造函数需要额外的布局
与CursorAdapter
构造函数相比的参数。但我无法做到
了解拥有额外布局的重要性
ResourceCusorAdapter
构造函数中的参数。
答案 0 :(得分:24)
CursorAdapter和ResourceCursorAdapter都是抽象类。确切的区别在于ResourceCursorAdapter实现了 newView 方法(在CursorAdapter基础中是抽象的)。
ResourceCursorAdapter也以不同方式覆盖 newDropDownView 方法,但这不是主要的,主要是 newView 。
构造函数中的额外布局是用于为每个项创建视图的内容,这里是ResourceCursorAdapter from the source的 newView 方法:
/**
* Inflates view(s) from the specified XML file.
*
* @see android.widget.CursorAdapter#newView(android.content.Context,
* android.database.Cursor, ViewGroup)
*/
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return mInflater.inflate(mLayout, parent, false);
}
基本上,如果您不使用ResourceCursorAdapter,那么您在自己的CursorAdapter自定义实现中也会做同样的事情。当然,你可以自由地做更多事情,但是如果你有一套布局,那么扩展ResourceCursorAdapter会更容易(它增加了一些便利性,就是这样)。