【发布时间】:2019-08-22 16:42:17
【问题描述】:
我知道之前有人问过这个问题,但我的代码在应用补丁后仍然无法正常工作。 当我触摸 fetch 按钮时,它崩溃并显示错误
java.lang.NullPointerException: Attempt to invoke virtual method 'androidx.recyclerview.widget.RecyclerView$Adapter androidx.recyclerview.widget.RecyclerView.getAdapter()' on a null object reference
at com.example.csitcms.myrecyclerviewActivity$1.onChildAdded(myrecyclerviewActivity.java:35)'
代码最后一行显示如下错误:
public class myrecyclerviewActivity extends AppCompatActivity {
RecyclerView recyclerView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_recycler_view);
DatabaseReference databaseReference= FirebaseDatabase.getInstance().getReference();
databaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
String filename= dataSnapshot.getKey();
String url= dataSnapshot.getValue(String.class);
((MyAdapter)recyclerView.getAdapter()).update(filename,url);
}
【问题讨论】:
-
先生,请帮我完成最后一行,我可以在代码中添加什么以使获取按钮不会崩溃??
-
你在哪里实例化
recyclerView?即recyclerView = /* something goes here */; -
在 MyAdapter 类中,代码如下: { RecyclerView recyclerview;上下文上下文; ArrayList
items= new ArrayList(); ArrayList urls= new ArrayList(); -
数组列表也被“代码是多余的或在此之后不再使用”的消息模糊了。
-
对象(非 intiazlied)的类实例或变量默认始终为空,在您的情况下,recyclerView 为空,在 setContentView 之后,您需要将值分配给此 recyclerView 并使用您的 id 映射您在 XML 布局 my_recycler_view 中定义的。
标签: java android firebase firebase-realtime-database