如何在android中的菜单项中设置字体真棒图标?

时间:2017-01-12 06:47:59

标签: android font-awesome

enter image description here我在字体真棒中遇到问题,我尝试了很多方法在菜单项中设置字体真棒图标,但问题没有解决。

   @Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.drawer_menu, menu);
    return true;
}


@Override
public boolean onPrepareOptionsMenu(Menu menu) {

    TextDrawable faIcon = new TextDrawable(this);
    faIcon.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 30);
    faIcon.setTextAlign(Layout.Alignment.ALIGN_NORMAL);
    faIcon.setTypeface(FontAwesomeManager.getTypeface(this, FontAwesomeManager.FONTAWESOME));
    faIcon.setText(getResources().getText(R.string.home_font));
    MenuItem menuItem = menu.findItem(R.id.home);
    menuItem.setIcon(faIcon);
    menuItem.setTitle("Home");
    return  true;
}

上面的代码是我的字体很棒的代码,用于将字体设置为导航抽屉菜单中的菜单项图标。请帮我解决这个问题。

如何在菜单项中添加字体真棒字体,如上图所示。

2 个答案:

答案 0 :(得分:0)

  

此异常显示在logcat ..java.lang.NullPointerException中:尝试在空对象引用上调用接口方法'android.view.MenuItem android.view.Menu.findItem(int)'

您应该从MenuonCreateOptionsMenu(Menu)回调中获得对onPrepareOptionsMenu(Menu)的引用。

@Override
public boolean onPrepareOptionsMenu(final Menu menu) {
    MenuItem menuItem = menu.findItem(R.id.alerts_id);
    ... // other actions with menuItem
}

答案 1 :(得分:0)

我也遇到了同样的问题,如果有人仍然在这种情况下挣扎,可以尝试以下方法查看它是否适用于他们

  1. 在导航视图中找到导航菜单项后,我们必须在onCreateOptionsMenu中搜索导航视图,如下所示

NavigationView navigationView = findViewById(R.id.nav_view); 菜单navMenu = navigationView.getMenu();

  1. 我正在使用自定义的Drawable类“ FontDrawable”,下一步是初始化FontDrawable的实例,设置Font Awesome图标,并设置其大小

FontDrawable drawable = new FontDrawable(this,R.string.fa_sign_out_alt_solid,true,false); drawable.setTextSize(20);

  1. 在导航菜单中找到菜单项

MenuItem logOutItem = navMenu.findItem(R.id.nav_logout);

  1. 将图标设置为菜单项

logOutItem.setIcon(drawable);

下面显示了屏幕截图供参考

enter image description here