Создаю так:
PopupMenu menu1 = new PopupMenu(this, v);
menu1.getMenu().add(0,0,0,"Создать");
menu1.getMenu().add(2,1,0,"Изменить");
menu1.getMenu().addSubMenu(2,2,0,"Изменить данные");
menu1.getMenu().addSubMenu(2,3,0,"Изменить функцию");
Результат: все вываливается одним списком, а мне надо, чтобы вначале было два пункта "Создать" и "Изменить", и если на "Изменить" нажимаю, появлялись пункты подменю.
Вы добавляете подменю в корневой элемент меню. Вот оно у вам и на одном уровне с обычными пунктами. Вам надо побавлять подменю к уже существующим пунктам меню. Попробуйте как-то так - найти пункт уже добавленный и в него добавить подменю:
PopupMenu popup = new PopupMenu(context, v);
//так добавится пункт, к корому нельзя добавить под меню
popup.getMenu().add(1, 1, 1, R.string.delete);
//а так добавится в первый уровень меню пункт с именем "submenu"
SubMenu subMenu = popup.getMenu().addSubMenu(0, 0, 0, "submenu");
//а вот так в него можно добавить подменю с именами "subItem0" и "subItem1"
//они появятся с заголовком "submenu"
subMenu.add(0, 0, 0, "subItem0");
subMenu.add(0, 1, 1, "subItem1");
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости