有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Android Studio java。lang.NullPointerException:

我有几个问题

  1. 由于NullPointerException,应用程序未运行

Error content: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void 安卓x.recyclerview.widget.RecyclerView.setLayoutManager(安卓x.recyclerview.widget.RecyclerView$LayoutManager)' on a null object reference

活动。java

import 安卓.content.Intent;
import 安卓.os.Bundle;
import 安卓.widget.ImageView;

import 安卓x.appcompat.app.AppCompatActivity;
import 安卓x.recyclerview.widget.LinearLayoutManager;
import 安卓x.recyclerview.widget.RecyclerView;

import com.google.安卓.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

<安卓x.recyclerview.widget.RecyclerView
    安卓:id="@+id/contact_list"
    安卓:layout_below="@+id/app_bar_layout_contacts"
    安卓:layout_above="@+id/nav_view"
    安卓:layout_width="match_parent"
    安卓:layout_height="match_parent">

</安卓x.recyclerview.widget.RecyclerView>
  1. Firebase的实时数据库无法上载

请参考下面的图片
enter image description here

任何建议都是好的,所以请评论


共 (1) 个答案

  1. # 1 楼答案

    你的代码有几处问题。 首先,您的DatabaseReference没有引用firebase中的子级

    private DatabaseReference databaseReference = firebaseDatabase.getReference().child("NameOfTheNode");
    

    参考:https://firebase.google.com/docs/database/android/read-and-write

    然后,您可以使用此子引用并使用FirebaseUI for Real Time数据库,以提供一种更简单的方式将您的子对象连接到RecyclerView。要了解如何实现这一点,请参阅以下内容:https://firebaseopensource.com/projects/firebase/firebaseui-android/database/readme/

    在创建FirebaseRecyclerOptions之后,为自己的实现创建FirebaseRecyclerAdapter并覆盖onCreateViewHolder()onBindViewHolder()

    然后将FirebaseRecyclerAdapter的实例设置为recycler视图的适配器,它将开始读取数据

    对于Realtime Database为空的问题,请尝试在Firebase控制台中导入包含数据的JSON文件