动态设置抽屉菜单图标

时间:2014-12-19 11:33:48

标签: android navigation-drawer

问题: - 我想在导航栏中为不同的项目设置不同的菜单图标。我知道如何设置项目的图标,但我只能为列表中的每个项目设置一个图标。我想动态设置不同的图标。

我的代码是:

@Override
public View getView(NLevelItem item) 
{
    View view = inflater.inflate(R.layout.drawer_list_item, null);
    TextView tv = (TextView) view.findViewById(R.id.category);
    TextView plusIcon = (TextView) view.findViewById(R.id.category_plus);
    CategoryBean categoryBean = (CategoryBean) item.getWrappedObject();
    tv.setText(" "+categoryBean.getName());

    //here is where I set the Icon
    tv.setCompoundDrawablesWithIntrinsicBounds(R.drawable.rsz_ic_home, 0,0, 0);
    return view;
}

注意: - 我正在使用nlevel菜单,所以我不想要每个项目的图标。我只想要父项目的图标,因此我没有在我的布局中使用imageview。请帮帮我。

2 个答案:

答案 0 :(得分:1)

将drawable的id存储在您的项目中,并在getView方法中获取其值:

@Override
public View getView(NLevelItem item) 
{
    View view = inflater.inflate(R.layout.drawer_list_item, null);
    TextView tv = (TextView) view.findViewById(R.id.category);
    TextView plusIcon = (TextView) view.findViewById(R.id.category_plus);
    CategoryBean categoryBean = (CategoryBean) item.getWrappedObject();
    tv.setText(" "+categoryBean.getName());

    //here is where I set the Icon
    tv.setCompoundDrawablesWithIntrinsicBounds(item.getDrawableId(), 0,0, 0);
    return view;
}

答案 1 :(得分:1)

这很容易。

您必须使用字符串数组作为项目的名称,并使用数组作为项目的图标。显然,您必须创建一个构造函数类来创建抽屉的每个项目。

我认为本教程将为您提供很多帮助。

http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/