Ошибка скольжения библиотеки или сбой приложения при добавлении фрагмента, а также отображение изображения для этой конкретной проблемы - PullRequest
0 голосов
/ 06 мая 2019

Вы не можете начать загрузку в еще не присоединенном представлении или фрагменте, где getActivity () возвращает значение null (что обычно происходит при вызове getActivity () перед присоединением фрагмента или после уничтожения фрагмента.

 fuser = FirebaseAuth.getInstance().getCurrentUser();
        reference = FirebaseDatabase.getInstance().getReference("Users").child(fuser.getUid());

        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if(isAdded()) {
                    User user = dataSnapshot.getValue(User.class);
                    assert user != null;
                    username.setText(user.getUsername());
                    if (user.getImageURL().equals("default")) {
                        image_profile.setImageResource(R.mipmap.ic_launcher);
                    } else {
                        Glide.with(ProfileFragment.this).load(user.getImageURL()).into(image_profile);
                    }
                }
            }

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

            }
        });

Мое приложение падает, когда я добавляю фрагмент.

Ответы [ 2 ]

0 голосов
/ 06 мая 2019

Если вы добавите любой фрагмент.Приложение аварийно завершает работу, затем необходимо проверить, что сначала добавлен фрагмент ИЛИ Нет.

Это может привести к двум ошибкам.1-е Решение также на Stackoverflow.

2-я проблема в том, что вы получаете Сбой от другого действия, пожалуйста, используйте NameOFActivity.this Или getApplicationContext () Затем перейдите к этому фрагменту ИЛИ операции, в которой вы находитесьделать эту пространственную задачу и добавить 1-е решение

0 голосов
/ 06 мая 2019

Вы должны попробовать свой код следующим образом:

reference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        if(isAdded()) {
            User user = dataSnapshot.getValue(User.class);
            assert user != null;
            username.setText(user.getUsername());
            if (user.getImageURL().equals("default")) {
                image_profile.setImageResource(R.mipmap.ic_launcher);
            } else {
                if(getAcivity()!=null && !getAcivity().isFinishing())
                    Glide.with(getAcivity()).load(user.getImageURL()).into(image_profile);
            }
        }
    }

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

    }
});
...