[英]Android Studio java.lang.NullPointerException:
我有几个问题。
Error content: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.recyclerview.widget.RecyclerView.setLayoutManager(androidx.recyclerview.widget.RecyclerView$LayoutManager)' on a null object reference
活动.java
import android.content.Intent;
import android.os.Bundle;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
public class ContactsActivity extends AppCompatActivity {
BottomNavigationView navView;
RecyclerView myContactsList;
ImageView findPeopleBtn;
private FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
private DatabaseReference databaseReference = firebaseDatabase.getReference();
@Override
protected void onCreate(Bundle savedInstanceStage) {
super.onCreate(savedInstanceStage);
setContentView(R.layout.activity_contacts);
navView = findViewById(R.id.nav_view);
navView.setOnNavigationItemSelectedListener(navigationItemSelectedListener);
findPeopleBtn = findViewById(R.id.find_people_btn);
myContactsList = findViewById(R.id.contact_list);
myContactsList.setLayoutManager(new LinearLayoutManager(getApplicationContext())); =>error
findPeopleBtn.setOnClickListener(v -> {
Intent findPeopleIntent = new Intent(ContactsActivity.this,FindPeopleActivity.class);
startActivity(findPeopleIntent);
});
}
活动.xml
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/contact_list"
android:layout_below="@+id/app_bar_layout_contacts"
android:layout_above="@+id/nav_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</androidx.recyclerview.widget.RecyclerView>
任何建议都是好的,所以请发表评论。
您的代码有几处问题。 首先,您的DatabaseReference
没有引用 firebase 中的孩子。
private DatabaseReference databaseReference = firebaseDatabase.getReference().child("NameOfTheNode");
参考: https://firebase.google.com/docs/database/android/read-and-write
然后,您可以使用此子引用并使用 FirebaseUI for Realtime Database 来提供一种更简单的方法来将您的孩子附加到RecyclerView
。 要了解如何实现此功能,请参阅以下内容: https://firebaseopensource.com/projects/firebase/firebaseui-android/database/readme/
创建FirebaseRecyclerOptions
后,创建FirebaseRecyclerAdapter
并为您自己的实现覆盖onCreateViewHolder()
和onBindViewHolder()
。
然后将FirebaseRecyclerAdapter
的实例设置为您的回收器视图的适配器,它将开始读取数据。
对于Realtime Database
存在 null 的问题,请尝试在 Firebase 控制台中导入包含数据的JSON
文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.