Android 是什么使我的代码中出现NullpointException?
我不知道显示跟随者跟随列表的问题是什么, 这是工作,但几天后(也许有可能我碰了什么东西…)它没有工作 是什么导致了错误NullPointerException 这是我的错误Android 是什么使我的代码中出现NullpointException?,android,firebase,null,Android,Firebase,Null,我不知道显示跟随者跟随列表的问题是什么, 这是工作,但几天后(也许有可能我碰了什么东西…)它没有工作 是什么导致了错误NullPointerException 这是我的错误 2019-06-17 11:53:31.158 8298-8298/com.example.blogapp E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.blogapp, PID: 8298 java.lang.NullPointer
2019-06-17 11:53:31.158 8298-8298/com.example.blogapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.blogapp, PID: 8298
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
at com.example.together.Activities.FollowersActivity$5.onDataChange(FollowersActivity.java:157)
at com.google.firebase.database.Query$1.onDataChange(com.google.firebase:firebase-database@@17.0.0:184)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@17.0.0:75)
at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@17.0.0:63)
at com.google.firebase.database.core.view.
没有显示红线。。。只是零点
这是我点击的btn*
followers.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getContext(), FollowersActivity.class);
intent.putExtra("id", profileid);
intent.putExtra("title","followers");
startActivity(intent);
}
});
following.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getContext(), FollowersActivity.class);
intent.putExtra("id", profileid);
intent.putExtra("title","following");
startActivity(intent);
}
});
这是我的后续活动
package com.example.together.Activities;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.View;
import com.example.together.Adapter.UserAdapter;
import com.example.together.Model.User;
import com.example.together.R;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import java.util.List;
public class FollowersActivity extends AppCompatActivity {
String id;
String title;
List<String> idList;
RecyclerView recyclerView;
UserAdapter userAdapter;
List<User> userList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_followers);
Intent intent = getIntent();
id = intent.getStringExtra("id");
title = intent.getStringExtra("title");
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
recyclerView = findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
userList = new ArrayList<>();
userAdapter = new UserAdapter(this, userList, false);
recyclerView.setAdapter(userAdapter);
idList = new ArrayList<>();
switch (title){
case "likes":
getLikes();
break;
case "following":
getFollowing();
break;
case "followers":
getFollowers();
break;
}
}
private void getLikes() {
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Likes")
.child(id);
reference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
idList.clear();
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
idList.add(snapshot.getKey());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
private void getFollowing(){
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Follow")
.child(id).child("following");
reference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
idList.clear();
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
idList.add(snapshot.getKey());
}
showUsers();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
private void getFollowers(){
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Follow")
.child(id).child("followers");
reference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
idList.clear();
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
idList.add(snapshot.getKey());
}
showUsers();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
private void showUsers(){
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users");
reference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
userList.clear();
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
User user = snapshot.getValue(User.class);
for (String id : idList){
if (user.getId().equals(id)){
userList.add(user);
}
}
}
userAdapter.notifyDataSetChanged();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
package com.example.together.Activities;
导入android.content.Intent;
导入android.support.annotation.NonNull;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.support.v7.widget.LinearLayoutManager;
导入android.support.v7.widget.RecyclerView;
导入android.support.v7.widget.Toolbar;
导入android.view.view;
导入com.example.together.Adapter.UserAdapter;
导入com.example.together.Model.User;
导入com.example.together.R;
导入com.google.firebase.database.DataSnapshot;
导入com.google.firebase.database.DatabaseError;
导入com.google.firebase.database.DatabaseReference;
导入com.google.firebase.database.FirebaseDatabase;
导入com.google.firebase.database.ValueEventListener;
导入java.util.ArrayList;
导入java.util.List;
公共类followers活动扩展了AppCompatActivity{
字符串id;
字符串标题;
列出闲散者;
回收视图回收视图;
用户适配器用户适配器;
列表用户列表;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_followers);
Intent=getIntent();
id=intent.getStringExtra(“id”);
title=intent.getStringExtra(“title”);
Toolbar Toolbar=findviewbyd(R.id.Toolbar);
设置支持操作栏(工具栏);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setNavigationOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
完成();
}
});
recyclerView=findViewById(R.id.recycler\u视图);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(新的LinearLayoutManager(本));
userList=newarraylist();
userAdapter=newuseradapter(this,userList,false);
recyclerView.setAdapter(userAdapter);
idList=newarraylist();
开关(标题){
案例“喜欢”:
getLikes();
打破
“以下”情况:
getFollowing();
打破
“追随者”一案:
getFollowers();
打破
}
}
私有void getLikes(){
DatabaseReference=FirebaseDatabase.getInstance().getReference(“Likes”)
.儿童(身份证);
reference.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
idList.clear();
对于(DataSnapshot快照:DataSnapshot.getChildren()){
add(snapshot.getKey());
}
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
private void getFollowing(){
DatabaseReference=FirebaseDatabase.getInstance().getReference(“Follow”)
.儿童(id)。儿童(“以下”);
reference.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
idList.clear();
对于(DataSnapshot快照:DataSnapshot.getChildren()){
add(snapshot.getKey());
}
showUsers();
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
私有void getFollowers(){
DatabaseReference=FirebaseDatabase.getInstance().getReference(“Follow”)
.儿童(id)。儿童(“追随者”);
reference.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
idList.clear();
对于(DataSnapshot快照:DataSnapshot.getChildren()){
add(snapshot.getKey());
}
showUsers();
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
私有void showUsers(){
DatabaseReference=FirebaseDatabase.getInstance().getReference(“用户”);
reference.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
userList.clear();
对于(DataSnapshot快照:DataSnapshot.getChildren()){
User=snapshot.getValue(User.class);
for(字符串id:idList){
if(user.getId().equals(id)){
添加(用户);
}
}
}
userAdapter.notifyDataSetChanged();
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
}
用户对象为空,您正试图从空对象检索数据
reference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
userList.clear();
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
User user = snapshot.getValue(User.class);
// check user exists or not.. here user gets null
if(user!=null){
for (String id : idList){
if (user.getId().equals(id)){
userList.add(user);
}
}}
}
在第一个活动中检查profileid
intent.putExtra("id", profileid);
请确保在此处打印日志,因为您获得了profileid的值。javaFollowersActivity.java第157i行我看到了日志,我不明白为什么它为空,它向我显示为空,已选中为空,但向我显示为空。。。。