越封 2021-12-24 00:01 采纳率: 66.7%
浏览 259
已结题

Android Studio RecyclerView.setAdapter 闪退

问题遇到的现象和发生背景

完全不知道发生了什么……

问题相关代码,请勿粘贴截图

RecordActivity
public class RecordActivity extends AppCompatActivity {

private RecyclerView mRecyclerView;
private FloatingActionButton mBtnAdd;
private List<Note> mNotes;
private MyDatabaseHelper myDatabaseHelper;
private MyAdapter mMyAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_record);
    initData();
    initEvent();
    mRecyclerView = findViewById(R.id.recyclerview);


}

private void initEvent() {
    mMyAdapter = new MyAdapter(this,mNotes);
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
    mRecyclerView.setLayoutManager(linearLayoutManager);
    mRecyclerView.setAdapter(mMyAdapter);


}

private void initData() {

    mNotes = new ArrayList<>();
    
    for (int i = 0;i<2;i++){
        Note note = new Note();
        note.setTitle("标题"+i);
        note.setContent("内容"+i);
        note.setCreatedTime(getCurrentTimeFormat());
        mNotes.add(note);
    }


}

private String getCurrentTimeFormat(){
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY年MM月dd HH:mm:ss");
    Date date = new Date();
    return simpleDateFormat.format(date);
}

public void add(View view) {
    Intent intent = new Intent(RecordActivity.this, AddActivity.class);
    startActivity(intent);
}

}

这个是MyAdapter
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {

private List<Note> mBeanList;
private LayoutInflater mLayoutInflater;
private Context mContext;

public MyAdapter(Context context,List<Note> mBeanList){
    this.mBeanList = mBeanList;
    this.mContext = context;
    mLayoutInflater = LayoutInflater.from(mContext);

}

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = mLayoutInflater.inflate(R.layout.item_layout, parent, false);
    MyViewHolder myViewHolder = new MyViewHolder(view);
    return myViewHolder;
}

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
    Note note = mBeanList.get(position);
    holder.mTvTitle.setText(note.getTitle());
    holder.mTvContent.setText(note.getContent());
    holder.mTvTime.setText(note.getCreatedTime());
    holder.rlContainer.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent intent = new Intent(mContext, EditActivity.class);
            intent.putExtra("note", note);
            mContext.startActivity(intent);
        }
    });

}

@Override
public int getItemCount() {
    return 0;
}

class MyViewHolder extends RecyclerView.ViewHolder{
    TextView mTvTitle;
    TextView mTvContent;
    TextView mTvTime;
    ViewGroup rlContainer;
    public MyViewHolder(@NonNull View itemView) {
        super(itemView);
        this.mTvTitle = itemView.findViewById(R.id.tv_title);
        this.mTvContent = itemView.findViewById(R.id.tv_content);
        this.mTvTime = itemView.findViewById(R.id.tv_time);
        this.rlContainer = itemView.findViewById(R.id.rl_item_container);
    }
}

}

这个是activty_record

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.mrwork.record.RecordActivity">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/add"
        android:layout_gravity="right|bottom"
        android:clickable="true"
        android:onClick="add"
        android:layout_margin="20dp"
        />


</FrameLayout>

尝试过的方法

mRecyclerView初始化了

运行结果及报错内容

img

这是logcat的报错……
补充了一下RecordActivity和activity_record的代码
感谢……

  • 写回答

4条回答 默认 最新

  • 立青_ 2021-12-24 13:44
    关注

    img


    你先执行的再初始化,肯定空指针啊

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 1月1日
  • 已采纳回答 12月24日
  • 修改了问题 12月24日
  • 创建了问题 12月24日

悬赏问题

  • ¥15 服务端控制goose报文控制块的发布问题
  • ¥15 学习指导与未来导向啊
  • ¥15 求多普勒频移瞬时表达式
  • ¥15 如果要做一个老年人平板有哪些需求
  • ¥15 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥30 python安卓开发
  • ¥15 使用R语言GD包一直不出结果