Я пытаюсь загрузить иконку динамически в мою нижнюю панель навигации.Каждый раз, когда пользователь щелкает новую переменную (в моем случае новый город), иконка для переменной должна быть загружена с сервера 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);
Я также думал о том, чтобы сначала сохранить все значки в папке для рисования.Но так как я хочу иметь возможность менять иконки после запуска приложения, это не будет соответствовать моим требованиям.Хотя после загрузки их с сервера может быть возможность сохранить значки в папку для рисования - возможно, у некоторых из вас есть идеи, как решить эту проблему.