回收视图不显示适配器中的数据 [英] Recycle View doesn't show data from adapter

查看:60
本文介绍了回收视图不显示适配器中的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当前,我正在使用Android中的RecyclerView来显示我从Firebase获得的一些数据.我正在使用MVC设计模式,因此必须将一些数据从视图(actViewDB)传递到控制器(Controller),然后传递给Model类(DataModel).不幸的是,我总是收到这样的Java NullPointerException错误

Currently I'm using RecyclerView from Android to show some data that I get from Firebase. I'm using MVC design pattern so I had to pass some data from the view (actViewDB), to the controller(Controller) and then to the Model class (DataModel). Unfortunately I always get the Java NullPointerException error like this

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:回收器视图适配器,但仍然不能解决我的问题

Why is this happening? I'm sorry if this question is already asked, I already search for the answer multiple times from the last week but still can't fix this. The closest problem I found is this android: recycler view adapter but still doesn't fix my problem.

推荐答案

您必须先初始化adapter,然后再调用其方法

You have to initialise the adapter before call its method

adapter = new DataAdapter();

这篇关于回收视图不显示适配器中的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆