2016-06-25 6 views
0

問題があります。 私のアプリでは、ドロワーメニューにメニューアイテムを動的にビルドしました。Android:ダイナミックメニューアイテムにカスタムIDを割り当てる方法

// 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); 
    }; 

問題なく機能します。今、私はこれらのアイテムをクリックして反応したいと思います。私は意思にこのIDを設定する

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

は、カスタムIDを作成するthis answerを参照してください。次に、関数setIdを割り当てます。

リストが非常に動的な場合は、番号を割り当てることができます。 IDはintです。

+0

Thx、それが動作するようです。 –

関連する問題