我试图将图标动态加载到我的底部导航栏中。 每次用户单击新变量(在我的情况下为新城市)时,应从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);
我也在考虑先将所有图标保存到drawable文件夹中。但是由于我希望能够在启动应用程序后更改图标,因此无法满足我的要求。从服务器下载图标后,虽然有可能将图标保存到drawable文件夹中-也许有些人对如何解决此问题有任何想法。