低-调 2017-09-10 14:18 采纳率: 0%
浏览 2693

RecyclerView 的onBindViewHolder出现空指针异常

package com.example.haha.note;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**

  • Created by haha on 2017/9/8. */

public class NotesTitleFragment extends Fragment {
private boolean isTwoPane;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View view=inflater.inflate(R.layout.notes_title_frag,container,false);
RecyclerView noteTitleRecyclerView=(RecyclerView) view.findViewById(R.id.notes_title_recycler_view);
LinearLayoutManager layoutManager=new LinearLayoutManager(getActivity());
noteTitleRecyclerView.setLayoutManager(layoutManager);
NoteAdapter adapter=new NoteAdapter(getNote());
noteTitleRecyclerView.setAdapter(adapter);
return view;
}
private List getNote(){
List notesList=new ArrayList<>();
for(int i=1;i<=50;i++){
notes note=new notes();
note.setTitle("This is title" + i);
note.setContent(getRandomLengthContent("This is note content"+i+"."));
notesList.add(note);
}
return notesList;
}
private String getRandomLengthContent(String content){
Random random=new Random();
int length=random.nextInt(20)+1;
StringBuilder builder=new StringBuilder();
for(int i=0;i<length;i++){
builder.append(content);
}
return builder.toString();
}
public void onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
if(getActivity().findViewById(R.id.notes_content_layout) !=null){
isTwoPane=true;
}
else isTwoPane=false;

}
class NoteAdapter extends RecyclerView.Adapter<NoteAdapter.ViewHolder>{
    private List<notes> mNoteList;
       class ViewHolder extends RecyclerView.ViewHolder{
        TextView noteTitleText;
        public  ViewHolder(View view){
            super(view);
            noteTitleText=(TextView) view.findViewById(R.id.note_title);
        }
    }
    public NoteAdapter(List<notes> notesList){
        mNoteList=notesList;
    }
   @Override
   public ViewHolder onCreateViewHolder(ViewGroup parent,int viewType){
        View view=LayoutInflater.from(parent.getContext()).inflate(R.layout.notes_item,parent,false);
        final ViewHolder holder=new ViewHolder(view);

         view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                notes note=mNoteList.get(holder.getAdapterPosition());
                if(isTwoPane){
                    NotesContentFragment notesContentFragment=(NotesContentFragment) getFragmentManager().findFragmentById(R.id.notes_content_fragment);
                   notesContentFragment.refresh(note.getTitle(),note.getContent());
                }else {
                    notesContentActivity.actionStart(getActivity(),note.getTitle(),note.getContent());
                }
            }
        });
        return  holder;
    }

    public void onBindViewHolder(ViewHolder holder,int position){
        notes note=mNoteList.get(position);
        holder.noteTitleText.setText(note.getTitle());
    }

    public int getItemCount(){
        return mNoteList.size();
    }
}

}
看了很多网上得解决办法还是没解决问题,小白求教

  • 写回答

6条回答

  • 技术分享 2017-09-11 01:57
    关注

    哪行出现空指针???

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘