从Firebase加载图标并将其设置为BottomNavigationBar的图标

时间:2018-11-20 16:16:40

标签: android android-studio icons bottomnavigationview

我试图将图标动态加载到我的底部导航栏中。 每次用户单击新变量(在我的情况下为新城市)时,应从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文件夹中-也许有些人对如何解决此问题有任何想法。

0 个答案:

没有答案