Java recyclerview没有';不显示项目
我来自big nerd ranch bookJava recyclerview没有';不显示项目,java,android,android-recyclerview,Java,Android,Android Recyclerview,我来自big nerd ranch book 回收器视图不显示任何项目 但代码似乎是一样的 这是我的密码 适配器和视图保持架所在的类 public class CrimeListFragment extends Fragment { private RecyclerView crime_recyclerView; private CrimeAdapter crimeAdapter ; @Override public View onCreateView(
回收器视图不显示任何项目 但代码似乎是一样的 这是我的密码 适配器和视图保持架所在的类
public class CrimeListFragment extends Fragment {
private RecyclerView crime_recyclerView;
private CrimeAdapter crimeAdapter ;
@Override
public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view= inflater.inflate(R.layout.fragment_crime_list, container, false);
crime_recyclerView=view.findViewById(R.id.crime_recycler_View);
crime_recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
crime_recyclerView.smoothScrollToPosition(0);
updateUI();
return view;
}
private void updateUI(){
CrimeLab crimeLab = CrimeLab.get(getActivity());
List<Crime> crimes =crimeLab.getcrimes();
crimeAdapter=new CrimeAdapter(crimes);
crime_recyclerView.setAdapter(crimeAdapter);
}
private static class CrimeHolder extends RecyclerView.ViewHolder {
public CrimeHolder ( LayoutInflater inflater,ViewGroup parent) {
super(LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_crime,parent,false));
}
}
private class CrimeAdapter extends RecyclerView.Adapter<CrimeHolder>{
private final List<Crime> m_crimes;
public CrimeAdapter(List<Crime> crimes) {
this.m_crimes = crimes;
}
@Override
public CrimeHolder onCreateViewHolder( ViewGroup parent, int viewType) {
LayoutInflater inflater= LayoutInflater.from(getActivity());
return new CrimeHolder(inflater,parent);
}
@Override
public void onBindViewHolder( CrimeHolder holder, int position) {
}
@Override
public int getItemCount() {
return m_crimes.size();
}
}
}
公共类CrimeListFragment扩展了片段{
私人回收站查看犯罪信息;
私人犯罪者犯罪者;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(R.layout.fragment\u crime\u list,container,false);
crime\u recyclerView=view.findviewbyd(R.id.crime\u recyclerView);
crime_recyclerView.setLayoutManager(新的LinearLayoutManager(getActivity());
犯罪(回收视图)(0);;
updateUI();
返回视图;
}
私有void updateUI(){
CrimeLab CrimeLab=CrimeLab.get(getActivity());
列表犯罪=crimeLab.getcrimes();
crimeAdapter=新的crimeAdapter(犯罪);
crime_recyclerView.setAdapter(crimeAdapter);
}
私有静态类CrimeHolder扩展了RecyclerView.ViewHolder{
公共犯罪文件夹(布局、充气器、视图组父级){
super(LayoutInflater.from(parent.getContext()).flate(R.layout.list_item_crime,parent,false));
}
}
私有类CrimeAdapter扩展了RecyclerView.Adapter{
私人最终清单m_罪行;
公共犯罪报告(列出罪行){
这个m_犯罪=犯罪;
}
@凌驾
public CrimeHolder onCreateViewHolder(视图组父级,int-viewType){
LayoutInflater充气器=LayoutInflater.from(getActivity());
返回新的CrimeHolder(充气机、父级);
}
@凌驾
公共无效onBindViewHolder(CrimeHolder holder,内部位置){
}
@凌驾
public int getItemCount(){
返回m_.size();
}
}
}
这是两个TextView XML的持有者
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="8dp">
<TextView
android:id="@+id/Title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:text="@tools:sample/lorem"
android:textSize="19sp"/>
<TextView
android:id="@+id/Description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:text="@tools:sample/lorem" />
</LinearLayout>
这是一个创建数组列表并填充它的类
public class CrimeLab {
private static CrimeLab sCrimeLab;
private List <Crime> mcrimes;
private CrimeLab(Context context) {
mcrimes =new ArrayList<>();
for (int i=0 ;i<100;i++){
Crime crime = new Crime();
crime.setTitle("Crime #"+i);
crime.setSolved(i%2==0);
mcrimes.add(crime);
}
}
public static CrimeLab get(Context context){
if(sCrimeLab==null){
sCrimeLab=new CrimeLab(context);
}
return sCrimeLab;
}
public List<Crime> getcrimes()
{
return mcrimes;
}
/////////////////////////////////:
public Crime getCrime(UUID id){
for(Crime crime :mcrimes){
if(crime.getId().equals(id)){
return crime;
}
}
return null;
}
}
public class CrimeLab{
私人静态CrimeLab sCrimeLab;
私人名单;
私人犯罪B(上下文){
mcrimes=newarraylist();
对于(int i=0;i您忘记将数据绑定到适配器onBindViewHolder方法中。私有静态类CrimeHolder扩展了RecycleView.ViewHolder{
private static class CrimeHolder extends RecyclerView.ViewHolder {
public TextView title, description;
public CrimeHolder (View view) {
super(view);
title = view.findViewById(R.id.Title);
description = view.findViewById(R.id.Description);
}
}
private class CrimeAdapter extends RecyclerView.Adapter<CrimeHolder>{
private final List<Crime> m_crimes;
public CrimeAdapter(List<Crime> crimes) {
this.m_crimes = crimes;
}
@Override
public CrimeHolder onCreateViewHolder( ViewGroup parent, int viewType) {
LayoutInflater inflater= LayoutInflater.from(getActivity());
return new CrimeHolder(inflater,parent);
}
@Override
public void onBindViewHolder( CrimeHolder holder, int position) {
holder.title.setText(m_crimes.get(position).getTitle());
holder.description.setText(m_crimes.get(position).getDescription())
}
@Override
public int getItemCount() {
return m_crimes.size();
}
}
公共文本视图标题、说明;
公共犯罪记录(视图){
超级(视图);
title=view.findViewById(R.id.title);
description=view.findViewById(R.id.description);
}
}
私有类CrimeAdapter扩展了RecyclerView.Adapter{
私人最终清单m_罪行;
公共犯罪报告(列出罪行){
这个m_犯罪=犯罪;
}
@凌驾
public CrimeHolder onCreateViewHolder(视图组父级,int-viewType){
LayoutInflater充气器=LayoutInflater.from(getActivity());
返回新的CrimeHolder(充气机、父级);
}
@凌驾
公共无效onBindViewHolder(CrimeHolder holder,内部位置){
holder.title.setText(m_.get(position.getTitle());
holder.description.setText(m_.get(position.getDescription())
}
@凌驾
public int getItemCount(){
返回m_.size();
}
}
请记住,getTitle
和getDescription
是标题和描述的getter。您没有将数据绑定到onBindViewHolder()中的视图
。它看起来是空的,我看到了,但在书中是空的,所以你可以看到第638页,我不知道如何像截图一样进入评论,我看到了,但在书中是空的。我不知道如何像截图一样进入评论
private static class CrimeHolder extends RecyclerView.ViewHolder {
public TextView title, description;
public CrimeHolder (View view) {
super(view);
title = view.findViewById(R.id.Title);
description = view.findViewById(R.id.Description);
}
}
private class CrimeAdapter extends RecyclerView.Adapter<CrimeHolder>{
private final List<Crime> m_crimes;
public CrimeAdapter(List<Crime> crimes) {
this.m_crimes = crimes;
}
@Override
public CrimeHolder onCreateViewHolder( ViewGroup parent, int viewType) {
LayoutInflater inflater= LayoutInflater.from(getActivity());
return new CrimeHolder(inflater,parent);
}
@Override
public void onBindViewHolder( CrimeHolder holder, int position) {
holder.title.setText(m_crimes.get(position).getTitle());
holder.description.setText(m_crimes.get(position).getDescription())
}
@Override
public int getItemCount() {
return m_crimes.size();
}
}