2016-06-25 3 views
0

Существует проблема. В моем приложении у меня есть динамически построенные пункты меню в меню ящика.Android: как назначить пользовательские идентификаторы динамическим пунктам меню?

// data comes from database 
    ArrayList<String> groupsName = mDbHelper.getAllGroupsName(); 

    Menu m = navigationView.getMenu(); 
    SubMenu userGroupsLessonsMenu = m.addSubMenu(R.string.your_groups); 

    for (String groupName : groupsName) { 
     userGroupsLessonsMenu.add(groupName); 
    }; 

ОК, он работает хорошо. Теперь я хочу реагировать на щелчок по этим элементам. Я хотел бы назначить свой собственный идентификатор пункты меню, чтобы в

public boolean onNavigationItemSelected(MenuItem item) { 
    int id = item.getItemId(); 

просто установить этот идентификатор намерение и начать новую деятельность.

Я не знаю, если это важно, но жестко закодированные пункты меню имеют конкретные идентификаторы, и мои пункты меню всегда есть 0:

06-25 17:50:20.857 23358-23358/my.package.name W/id: 2131493021 
06-25 17:50:35.210 23358-23358/my.package.name W/id: 2131493022 
06-25 17:50:38.372 23358-23358/my.package.name W/id: 2131493023 
06-25 17:50:41.410 23358-23358/my.package.name W/id: 2131493024 
06-25 17:50:47.576 23358-23358/my.package.name W/id: 0 
06-25 17:50:51.903 23358-23358/my.package.name W/id: 0 
06-25 17:50:57.241 23358-23358/my.package.name W/id: 0 
06-25 17:51:00.788 23358-23358/my.package.name W/id: 0 

ответ

1

См this answer для создания пользовательских идентификаторов. Затем назначьте их функцией setId.

Если список очень динамичный, то вы можете просто назначить числа. ID - всего лишь int.

+0

Thx, похоже, он работает. –

Смежные вопросы