В NavigationView моего приложения есть несколько меню, но я хотел, чтобы пользователь получал доступ только к определенным меню. Согласно пользовательской привилегии пользователь сможет просматривать только доступные ему меню. Поэтому я создал веб-сервис, который возвращает мне список меню.Android: добавить menuItem в NavigationView прагматично из webservice
Вот JSON выход доступа к меню
[
{
"id": "1",
"appId": "1",
"userId": "1",
"name": "Design List",
"icon": "http://some_website/Demo/images/menu/1.png",
"code": "dsn001"
},
{
"id": "2",
"appId": "1",
"userId": "1",
"name": "Price List",
"icon": "http://some_website/Demo/images/menu/2.png",
"code": "prc002"
},
....]
Для примера пользователь имеет доступ только к этому меню. У меня есть навигационное представление, готовое в приложении. Я хотел добавить это меню в режим навигации.
В андроида я создал класс модели для меню
MenuItems.java
public class MenuItems {
public String id;
public String appId;
public String userId;
public String name;
public String icon;
public String code;
}
В ответ WebService, я преобразовал ответ на ArrayList<MenuItems>()
здесь вебсервис код.
ArrayList<MenuItems> menuItem = new ArrayList<MenuItems>();
.
.
MenuItems[] items = new Gson().fromJson(response, MenuItems[].class);
for (MenuItems m : items) {
menuItem.add(m);
}
В основном действии я сделал этот код.
Menu menu = navigationView.getMenu();
if (menuList != null) {
for (MenuItems items : menuList) {
MenuItem menuItem = menu.add(items.name);
menuItem.setIcon(new BitmapDrawable(items.icon));
}
}
Но все же это не сработало.
Мне нужно отобразить это меню со значком в режиме навигации. Можно ли показывать значок с помощью библиотеки Picaso? пожалуйста помоги.
вы имели в виду добавление пунктов меню NavigationDrawer вашего APP? –
Вам нужно сделать [это] (http://stackoverflow.com/questions/30978114/add-a-listview-or-recyclerview-to-new-navigationview). –
@HasifSeyd да. Я хочу добавить меню в o NavigationDrawer. –