В очередной раз застряв в моих треках кодирования, я пришел за знаниями от всезнающего сообщества StackOverflow ... Моя проблема довольно проста.Я заполнил ящик навигационного представления объектами.Эти объекты toString () методы были перезаписаны для отображения каждого имени объекта в списке.При щелчке по каждому объекту в списке ящиков появляется сообщение с предупреждением («вы нажали» + myDrawerObject.getName ()). Проблема в приемнике onNavigationItemSelected.Этот метод возвращает элемент MenuItem, который является представлением.У меня проблемы с пониманием, почему я не могу рассматривать это представление как объект, который он должен содержать.Помощь очень ценится и спасибо заранее!
Я понимаю, что параметр элемента возвращает, какой пункт меню был нажат, но если этот элемент меню является объектом, почему я не могу вызвать эти объекты методами?Я попытался получить возвращаемое значение элемента и вызвать его метод getName (), но безрезультатно.item.getName ();(Я понимаю, что элемент является представлением, поэтому у него нет метода "getName ()"
Я попытался преобразовать значение элемента обратно в объект безрезультатно MyObject myObject = (MyObject) item; // Itemвсе еще является представлением, и представление не может быть преобразовано в объект, кажется
Я даже пытался поместить все созданные объекты типа MyObject в статический arrayList, а затем пытаться сопоставить идентификаторы также безрезультатно. //в слушателе onNavigationItemSelected int id = item.getItemId ()
//somewhere else in the code
for (anotherMyObject : listOfEveryMyObjectEverMade){
anotherMyObject.get(id)
}
/*returns the id of the item in the listview. as i understand a specific id
is assigned to every item in the list. so if an object has never been in that
particular list, it wont have that same id
*/
Я должен добавить содержимое ящика (список строк), созданного динамически, чтобы не было XML-файла для меню или menItems!