空对象引用上的方法'boolean java.lang.String.isEmpty()'

问题描述 投票:0回答:1

调用Firebase RecyclerView之后,它向我显示此错误。之后调用model.getAvatarUrl()。isEmpty(),因为返回null。您能帮我吗,我被困在这里。我调用了在线和离线方法,最近它向我显示了此错误。

FindFriendsActivity.java

adapter = new FirebaseRecyclerAdapter<User, FindFriendsViewHolder>(options) {
            @Override
            protected void onBindViewHolder(@NonNull final FindFriendsViewHolder viewHolder, final int position, @NonNull final User model)
            {
                final String usersIDs = getRef(position).getKey();

                UsersRef.child(usersIDs).addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        if (dataSnapshot.exists())
                        {
                            viewHolder.userName.setText(model.getName());
                            viewHolder.userStatus.setText(model.getStatus());


                            //Set Image
                            /*
                            if (model.getAvatarUrl().isEmpty()) {
                                viewHolder.profileImage.setImageResource(R.drawable.profile_image);
                            } else
                            {
                                Picasso.with(getBaseContext()).load(model.getAvatarUrl()).into(viewHolder.profileImage);
                            }*/
                            if (model.getAvatarUrl().isEmpty()){   //Error in this line
                                viewHolder.profileImage.setImageResource(R.drawable.profile_image);
                            }
                            else {
                                Picasso.with(getBaseContext()).load(model.getAvatarUrl()).into(viewHolder.profileImage);
                            }

                            viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View view)
                                {
                                    String visit_user_id = getRef(position).getKey();

                                    Intent profileIntent = new Intent(FindFriendsActivity.this, ChatActivity.class);
                                    profileIntent.putExtra("visit_user_id", visit_user_id);
                                    profileIntent.putExtra("visit_user_name", model.getName());
                                    profileIntent.putExtra("visit_image", model.getAvatarUrl());
                                    startActivity(profileIntent);
                                }
                            });

                        }
                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {

                    }
                });

            }

            @NonNull
            @Override
            public FindFriendsViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i)
            {
                View itemView = LayoutInflater.from(viewGroup.getContext())
                        .inflate(R.layout.users_display_layout, viewGroup, false);
                return new FindFriendsViewHolder(itemView);
            }
        };
java
1个回答
1
投票

您不能在null上调用方法,因为null不是对象,也没有任何方法。您需要先直接对您的值进行空检查]

model.getAvatarUrl() == null || model.getAvatarUrl().isEmpty()

或与apache commons一起使用

StringUtils.isEmtpy(model.getAvatarUrl())

© www.soinside.com 2019 - 2024. All rights reserved.