CursorAdapter
和ResourceCursorAdapter
?
有人可以解释override
需要哪些api吗
当实现我自己的ResourceCursorAdapter
时?
我已经阅读了ResourceCursorAdapter
文档,并能够
弄清楚它的构造函数需要额外的布局
与CursorAdapter
构造函数相比的参数。但是我无法
了解额外布局的意义是什么ResourceCusorAdapter
构造函数中的参数。
最佳答案
CursorAdapter和ResourceCursorAdapter都是抽象类。确切的区别是ResourceCursorAdapter实现了newView方法(在基本CursorAdapter中是抽象的)。
ResourceCursorAdapter还以不同的方式重写newDropDownView方法,但这不是主要内容,主要是newView。
构造函数中的额外布局是用来为每个项目创建 View 的,这里是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会更容易(这增加了一点便利,仅此而已)。