java - 回收视图不显示来自适配器的数据
问题描述
目前我正在使用RecyclerView
Android 来显示我从 Firebase 获得的一些数据。我正在使用 MVC 设计模式,因此我必须将一些数据从视图 ( actViewDB
) 传递到控制器 ( Controller
),然后再传递到模型类 ( DataModel
)。不幸的是,我总是收到这样的 JavaNullPointerException
错误
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.ryzen.pajakcerdas, PID: 3138
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.ryzen.pajakcerdas/com.example.ryzen.pajakcerdas.actViewDB}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.example.ryzen.pajakcerdas.dataAdapter.setNotes(java.util.List)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.example.ryzen.pajakcerdas.dataAdapter.setNotes(java.util.List)' on a null object reference
at com.example.ryzen.pajakcerdas.actViewDB.showModelList(actViewDB.java:22)
这是代码
actViewDB.java
public class actViewDB extends AppCompatActivity {
private List<DataModel> modelList;
private RecyclerView rc;
private dataAdapter adapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.recycle_viewdatabase);
rc = findViewById(R.id.recycler_view);
rc.setLayoutManager(new LinearLayoutManager(this));
rc.setHasFixedSize(true);
modelList = new ArrayList<>();
}
private void showModelList() {
modelList.add(new DataModel("a", 2, 1, 3));
adapter.setNotes(modelList);
rc.setAdapter(adapter);
}
}
为什么会这样?很抱歉,如果这个问题已经被问到,我已经从上周开始多次搜索答案,但仍然无法解决这个问题。我发现的最接近的问题是这个android: recycler view adapter但仍然不能解决我的问题。
解决方案
您必须adapter
在调用其方法之前初始化
adapter = new DataAdapter();
推荐阅读
- python - 为什么我在运行我的 python ping 脚本时收到主机未找到错误?
- ios - 如何在 iOS 中对图像实现 XMP 预设过滤器
- r - 如何编写一个函数来根据控制数据集在 R 中剪切许多列
- javascript - 检查包含文档中所有对象ID的数组字段中是否存在对象ID的最佳方法是什么?
- python - 调用 plt.subplot() 重置子图大小
- python - Pipenv 虚拟环境将我拉入不同的目录
- makefile - 如何从一个 GNU makefile 和大部分相同的源构建两个交互式网站?
- django - 按末端嵌套关系搜索 django rest 框架
- angular - 可以将 Angular 公开为 Web 服务 API 吗?
- c# - 刚开始学习 c# 并且在 for 循环后无法正确划分随机数