为什么我的用户名没有出现在 TextView 中?

我有一个java.lang.NullPointerException,我不知道如何解决它。我的用户名没有出现在TextView中。


public class Main extends AppCompatActivity {


  CircleImageView profilepic;

  TextView profileuser;


  FirebaseUser firebaseUser;

  DatabaseReference reference;


  @Override

  protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);


    Toolbar toolbar = findViewById(R.id.toolbar);

    setSupportActionBar(toolbar);

    getSupportActionBar().setTitle("");


    profilepic = findViewById(R.id.profile_image);

    profileuser = findViewById(R.id.username);


    firebaseUser = FirebaseAuth.getInstance().getCurrentUser();

    reference = FirebaseDatabase.getInstance().getReference("Users").child(firebaseUser.getUid());


    reference.addValueEventListener(new ValueEventListener() {

        @Override

        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            User user = dataSnapshot.getValue(User.class);

            profileuser.setText(user.getUsername());

            if (user.getImageURL().equals("default")){

                profilepic.setImageResource(R.mipmap.ic_launcher);

            }else{

                Glide.with(Main.this).load(user.getImageURL()).into(profilepic);

            }

        }


        @Override

        public void onCancelled(@NonNull DatabaseError databaseError) {


        }

    });

日志说我有错误profileuser.setText(user.getUsername());请帮助我。

潇潇雨雨
浏览 83回答 2
2回答

慕姐4208626

从日志中,我认为这user.getImageURL()是 null,因此您可以在比较之前先检查该值是否为 null。或者更标准的方法是移动你知道它不是空的东西,equals就像这样 if ("default".equals(user.getImageURL()))

慕慕森

这通常是因为您的数据引用错误。这可能是问题:reference = FirebaseDatabase.getInstance().getReference("Users").child(firebaseUser.getUid());典型的数据节点名称使用小写字母,因此您可能有错字。或者您需要检查您是否拥有正确的用户数据:User user = dataSnapshot.getValue(User.class);if(user == null) {  // data not found  return;}// check for non null user nameif(user.getUsername != null) {  profileuser.setText(user.getUsername());}// check for non null image urlif(user.getImageURL() != null) {  if (user.getImageURL().equals("default")){    ...  }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java