我有几个问题。
由于nullpointerexception,应用程序未运行。
错误内容:由以下原因引起:java.lang.nullpointerexception:尝试对空对象引用调用虚拟方法“void androidx.recyclerview.widget.recyclerview.setlayoutmanager(androidx.recyclerview.widget.recyclerview$layoutmanager)”
活动.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>
无法上载firebase的实时数据库。
请参考下图。
任何建议都是好的,所以请评论。
1条答案
按热度按时间2izufjch1#
你的代码有几个地方出了问题。首先是你的
DatabaseReference
不引用firebase中的子级。参考:https://firebase.google.com/docs/database/android/read-and-write
然后,您可以使用此子引用并使用firebaseui for realtime数据库来提供一种更简单的方法来将您的子对象附加到
RecyclerView
. 要了解如何实现这一点,请参阅以下内容:https://firebaseopensource.com/projects/firebase/firebaseui-android/database/readme/在创建
FirebaseRecyclerOptions
,创建FirebaseRecyclerAdapter
并覆盖onCreateViewHolder()
以及onBindViewHolder()
对于您自己的实现。然后设置
FirebaseRecyclerAdapter
作为循环器视图的适配器,它将开始读取数据。对于你的
Realtime Database
如果为空,请尝试导入JSON
firebase控制台中包含数据的文件。