- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建 recyclerview,它显示来自一个对象 (ObjectMaster) 的两个不同数组的结果。我不太关心顺序,只要两个数组都显示在列表中即可。任何想法或建议将不胜感激。
public ObjectMaster {
List<Object1> first_objects;
List<Object2> second_objects;
}
public class ObjectMasterAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private ObjectMaster object;
private static final int TYPE_OBJECT1 = 0;
private static final int TYPE_OBJECT2 = 1;
public ObjectMasterAdapter(ObjectMaster object) {
this.object = object;
}
public class Object1Holder extends RecyclerView.ViewHolder {
private TextView title;
private TextView subtitle;
public Object1Holder(View itemView) {
super(itemView);
title = (TextView) itemView.findViewById(R.id.title);
subtitle = (TextView) itemView.findViewById(R.id.subtitle);
}
public void bindObj(Object1 object) {
title.setText(object.getTitle());
subtitle.setText(object.getSubtitle());
}
}
public class Object2Holder extends RecyclerView.ViewHolder {
private TextView title;
public Object2Holder(View itemView) {
super(itemView);
title = (TextView) itemView.findViewById(R.id.title);
}
public void bindObj(Object2 object) {
title.setText(object.getTitle());
}
}
@Override
public int getItemViewType(int position) {
// I need to figure out the best way to determine if its already listed objects from the first object array (Object1)
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.object_item, viewGroup, false);
switch(i) {
case TYPE_OBJECT1: return new Object1Holder(view);
case TYPE_OBJECT2: return new Object2Holder(view);
}
return null;
}
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int i) {
switch (viewHolder.getItemViewType()) {
case TYPE_OBJECT1:
Object1Holder object1 = (Object1Holder) viewHolder;
object1.bindObj(object.first_objects.get(i));
break;
case TYPE_OBJECT2:
Object2Holder object2 = (Object2Holder) viewHolder;
object2.bindObj(object.second_objects.get(i));
break;
}
}
@Override
public int getItemCount() {
return object.first_objects.size() + object.second_objects.size();
}
最佳答案
I need to figure out the best way to determine if its already listed objects from the first object array (Object1)
如果 position
大于(或等于)第一个数组的长度,您现在进入第二个数组。从 position
中减去第一个数组的长度,得到第二个数组的索引。
另请注意,您在 onBindViewHolder()
中有一个错误,因为您没有执行类似的减法来更改 position
(i
value) 到第二个数组的索引中,当它是您正在处理的第二个数组的 View 类型时。
关于android - RecyclerView 中的两种对象类型,每个对象类型都有自己的 ViewHolder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30157347/
最近我使用 RecyclerView 并添加了一个自定义标题 View (另一种类型的项目 View )并尝试在数据发生更改时对其进行更新。奇怪的事情发生了。适配器创建一个新的 HeaderViewH
我的项目应该基于用户输入(用户发送文本、拍照或录制视频)创建多个 View ,类似于 WhatsApp 聊天 Activity ,结构几乎相同。适配器应该能够通过使用 getItemViewType(
在 ViewHolder pattern 中将 ViewHolder 设为静态对性能至关重要吗? ? A ViewHolder object stores each of the component
我只是想更好地理解我经常用来优化 ListView 的以下模式 我的阅读只指出静态内部类被视为顶级类的事实。与成员类(非静态)相比,这样的事情有什么好处? @Override public View
我有一个 RecyclerView 和一些 view/card(我们暂时称它为 View ),它们都包含相同的东西,包括我用作分隔栏的 View。 我希望能够在当前 View 上方的 view 中更改
我需要从 View Holder 访问 RecyclerView Adapter 的方法。我找不到任何解决方案。 或者是否可以从 ViewHolder 的 ViewModel 类(我已经在 MVVM
在我的 RecyclerView 适配器中只有一个 ViewHolder 类: public static class PlayerItemViewHolder extends RecyclerVie
我已经采用了一个示例代码来实现 RecyclerView,但试图将其转换为在我的应用程序的子 fragment 中工作。 代码在“创建列表 - 示例”下 Creating Lists and Card
我试图在我的主要 Activity 中而不是在我的自定义适配器中保存复选框的状态。我已检查共享首选项中是否存储了正确的数据,并且可以成功检索信息,但是当我尝试在打开应用程序时标记复选框时, View
我是 Kotlin 的新手,我正在制作一款货币兑换应用。在适配器中,我想将一些项目传递到新 Activity 中。 class AdapterC (val countryList: ArrayLis
我在我的代码中遇到了这个问题,当在 Viewholder 中的一个按钮上进行转换时,这是在 Onclicklistener 中完成的,多个转换发生在不同的行上即,如果我单击第 1 行中的按钮,则按钮向
public class ListViewAdapter extends BaseAdapter { private Context context; private LocationDetails[
我刚刚生成了一个 Master/Detail Flow 项目,我发现了一些奇怪的东西:在 DriverListActivity.java 中,名为 ViewHolder 的子类具有 final 属性。
我正在尝试配置抽屉导航以显示 3 种不同类型的“行”,但我在使用 Holder 时遇到了问题,被告知该消息: FATAL EXCEPTION: main java.lang.ClassCastExce
我理解Viewholder pattern的思路和用法,但我仍然有一个问题: 假设我们在 viewholder 中有一个 TextView,并显示 10 个项目(“item0,item1 ....”)
我有一个包含 3 种不同类型行的 ListView 。我在网上收到 ClassCastException holder = (RowViewHolder) row.getTag(); 我注意到 row
我正在尝试学习 Android 编程。我找不到这个算法的解释: public View getView(int r, View convertView, ViewGroup parent) { V
我正在创建一个 Android 应用程序,其中包含一个带有嵌套 CardView 的 RecyclerView。我需要将所有其他卡片替换为不同的颜色。我正在使用 @Override 来覆盖 onBin
我在 ListView 中使用分段时遇到问题。我需要使用 viewholder 使 listview 滚动平滑,但我不知道如何实现两个 viewholders,因为有两个单独的 View ,一个是部分
我在 ListView 上遇到了 View 持有者的充气问题。实现 Viewholder 后,充气机会出错,因此消息显示错误。 (在图 10 中,消息不是来 self ,而且每当我滚动时,错误的消息都
我是一名优秀的程序员,十分优秀!