Загрузите Icon из firebase и установите его как Icon для BottomNavigationBar - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь загрузить иконку динамически в мою нижнюю панель навигации.Каждый раз, когда пользователь щелкает новую переменную (в моем случае новый город), иконка для переменной должна быть загружена с сервера firebase и установлена ​​в нижней панели навигации.Мой код до сих пор выглядит так:

// first I load the relevant Icon from firebase
iconRef = mFirebaseDatabase.getReference().child(city);
    iconRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            cityIcon = (String) dataSnapshot.getValue();
        }

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

        }
    });

// this is for initiating bottom navigation bar
bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_nav);
Menu menu = bottomNavigationView.getMenu();

// the following shall load the Id of the part in the bottom navigation bar, where the icon shall be passed to
ImageView iconView = findViewById(R.id.CityIcon);
Picasso.get().load(cityIcon).into(iconView);
menuItemCity.setTitle(cCity);
// the problem is, when I start the activity it crashes

В качестве альтернативы я подумал, что это может помочь мне:

// but the following gives me an error as I am only allowed to enter an Integer and I am entering a String 
MenuItem menuItemCity = menu.getItem(0);
menuItemCity.setIcon(cityIcon); 

Я также думал о том, чтобы сначала сохранить все значки в папке для рисования.Но так как я хочу иметь возможность менять иконки после запуска приложения, это не будет соответствовать моим требованиям.Хотя после загрузки их с сервера может быть возможность сохранить значки в папку для рисования - возможно, у некоторых из вас есть идеи, как решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...