所以这里的故事:
我想在我的适配器中使用两种布局。所以基本上,我需要在 newView() 中有一个 if 来确定要返回哪个视图,并在 bindView() 中有一个 if 来知道在视图中做什么。这是正确的方法吗?
我在想这样的事情:
@Override
public View newView(Context context, Cursor c,
ViewGroup parent) {
if (HEADER == getItemViewType(c.getPosition())){
return (View) layoutInflater.inflate(R.layout.my_header, null);
} else {
return (View) layoutInflater.inflate(R.layout.my_row, null);
}
}
然后在bindView上:
@Override
public void bindView(final View view, final Context context,
Cursor c) {
if (TYPE_HEADER == getItemViewType(c.getPosition())){
// init and set values here e.g. view.findViewById().setText()
} else {
// init and set values here e.g. view.findViewById().setText()
}
}
我在正确的轨道上吗?因为根据我的日志,newView 中的 c.getPosition() 在 bindView 中的 c.getPosition() 上给出了不同的结果。我实际上只是在考虑重写 getView() 但他们说好的做法是在 CursorAdapter 中重写 newView 和 bindView。