Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 回收器视图仅显示第一个项目,即使onBindViewHolder和onCreateViewHolder对所有项目都运行_Java_Android_Android Recyclerview - Fatal编程技术网

Java 回收器视图仅显示第一个项目,即使onBindViewHolder和onCreateViewHolder对所有项目都运行

Java 回收器视图仅显示第一个项目,即使onBindViewHolder和onCreateViewHolder对所有项目都运行,java,android,android-recyclerview,Java,Android,Android Recyclerview,正如标题所说 首先,onBindViewHolder仅对第一项运行。查看这个网站上的问题和答案确实表明,我需要将包装视图的高度设置为wrap\u content。这确实解决了第一个问题,现在logcat显示所有方法都正常运行;但是,仍然只显示第一个项目 为什么会发生这种情况,我该如何解决 火柴架(包含在火柴适配器中): 公共静态类MatchHolder扩展了RecyclerView.ViewHolder{ 私有最终文本视图m_textTime; 私人最终文本视图m_textDay; 私有最终文本

正如标题所说

首先,
onBindViewHolder
仅对第一项运行。查看这个网站上的问题和答案确实表明,我需要将包装视图的高度设置为
wrap\u content
。这确实解决了第一个问题,现在logcat显示所有方法都正常运行;但是,仍然只显示第一个项目

为什么会发生这种情况,我该如何解决

火柴架(包含在火柴适配器中):

公共静态类MatchHolder扩展了RecyclerView.ViewHolder{
私有最终文本视图m_textTime;
私人最终文本视图m_textDay;
私有最终文本视图m_textUsers;
公共MatchHolder(@NonNull View itemView){
超级(项目视图);
Log.d(“匹配回收器”,“视图:+itemView.toString());
m_textDay=itemView.findviewbyd(R.id.sc_sched_text_match_holder_day);
Log.d(“匹配回收器”,“日视图:+m_textDay.toString());
m_textTime=itemView.findViewById(R.id.sc_sched_text_match_holder_time);
Log.d(“匹配回收器”,“时间视图:+m_textTime.toString());
m_textTeams=itemView.findViewById(R.id.sc_sched_text_match_holder_users);
Log.d(“匹配回收器”,“用户视图:”+m_textUsers.toString());
}
公共void setMatch(上下文、搜索匹配){
LocalDateTime=match.getMatchTIme();
m_textDay.setText(time.format(模式的DateTimeFormatter.of(“dd/MM”));
m_textTime.setText(time.format(模式的DateTimeFormatter.of(“HH:mm”));
m_textTeams.setText(String.join(“,”,match.getTeams().stream().map(MatchTeam::getTeamNumber).map(String::valueOf).toArray(String[]::new));
}
}
匹配适配器:

公共类MatchAdapter扩展了RecyclerView.Adapter{ List m_data=new ArrayList(); 语境m_语境; 公共匹配适配器(上下文、搜索匹配…数据){ m_context=上下文; 添加(数据); } @非空 @凌驾 public MatchHolder onCreateViewHolder(@NonNull ViewGroup父级,int-viewType){ Log.i(“UI_事件”,“初始化匹配持有者”); 归还新的火柴架( LayoutInflater.from(parent.getContext()).flate( R.layout.holder\u匹配\u sc,父级,false ) ); } @凌驾 public void onBindViewHolder(@NonNull MatchHolder,int位置){ setMatch(m_上下文,m_数据.get(位置)); Log.i(“UI_事件”,“初始化匹配列表项:”+m_data.get(position.toString()); } @凌驾 public int getItemCount(){ 返回m_data.size(); } 公共无效添加(球探比赛…比赛){ int init=getItemCount(); m_data.addAll(Arrays.asList(matches)); for(int i=init;i holder_匹配_sc.xml:


活动\u计划\u sc.xml(包含活动):


SC_ScheduleActivity.java(包含活动)

公共类SC_ScheduleActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u schedule\u sc);
RecyclerView matchListView=findViewById(R.id.sc\u rec\u sched\u main\u列表);
matchListView.setAdapter(
新匹配适配器(
这
新球探比赛(
新的MatchID(MatchID.MatchType.QUAL,1),
Arrays.asList(
新的比赛团队(1,“第一”,正确,“abc1”),
新的比赛团队(2,“第二优先”,正确,“abc2”),
新的比赛团队(3,“第三优先”,正确,“abc3”),
新的比赛团队(4,“第四名第一”,假,“abc4”),
新的比赛团队(5,“第五优先”,假,“abc5”),
新的比赛团队(6,“第六名第一”,假,“abc6”)
)
),
新球探比赛(
新的MatchID(MatchID.MatchType.QUAL,2),
Arrays.asList(
新的比赛团队(1,“第一”,正确,“abc1”),
新的比赛团队(5,“第五优先”,正确,“abc2”),
新的比赛团队(9,“第九优先”,正确,“abc3”),
新的比赛团队(4,“第四名第一”,假,“abc4”),
新的比赛团队(10,“第十名第一”,假,“abc5”),
新的比赛团队(11,“第十一优先”,假,“abc6”)
)
),
新球探比赛(
新的MatchID(MatchID.MatchType.季后赛,1),
Arrays.asList(
新的比赛团队(1,“第一”,正确,“abc1”),
新的MatchTeam(23,“23”,正确,“abc2”),
新的MatchTeam(30个“姓名”,正确的“abc3”),
新的比赛团队(34,“第四个30”,假,“abc4”),
新的比赛队(54分,“第五四”,假,“abc5”),
新的MatchTeam(69,“不错”,假,“abc6”)
)
)
)
);
androidx.constraintlayout.widget.ConstraintLayout