gpt4 book ai didi

android - bindView 和 newView 用于 CursorAdapter 中的两个 View 布局

转载 作者:太空狗 更新时间:2023-10-29 15:13:39 25 4
gpt4 key购买 nike

故事是这样的:

我想在我的适配器中使用两种布局。所以基本上,我需要在 newView() 中有一个 if 来确定返回哪个 View ,并且在 bindView() 中有一个 if 来知道在 View 中做什么。这是正确的方法吗?

我在想这样的事情:

@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。

最佳答案

除了我对糟糕的数据库设计的评论(关于这个问题)......

我会制作一个布局,同时包装 headercontent 布局,然后将这两个布局的 header 类型标记为 可见性=“消失”。对于需要 header subview 的 bindViewnewView 行,将其设为 View.VISIBLE 和内容 subview View.GONE。当然,当您希望内容布局交换它们时。

根据我的评论,您可能需要 ExpandableListView .我没有关于它的统计数据或测量结果,但我怀疑性能会更好。这也意味着您不依赖于将“标题”塞入与您的数据相同的表中的骇人听闻的解决方案。

关于android - bindView 和 newView 用于 CursorAdapter 中的两个 View 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14557251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com