Если все вышеперечисленное не работает, вам нужно отладить и убедиться, что функция onCreateOptionsMenu была вызвана (путем размещения журнала отладки или записи ...)
Если он не запущен, возможно, ваша тема Android не поддерживает панель действий. Откройте AndroidManifest.xml и установите значение для android:theme
с панелью действий поддержки тем :
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat">
Ставить только на полную замену. Существует предложение использовать глагол PATCH для решения вашей проблемы ( http://www.ietf.org/internet-drafts/draft-dusseault-http-patch-14.txt )
Патч, однако, может оказаться не тем, что вам нужно. Отправляется ресурс обновления, который может делать такие вещи, как счетчики приращения и поэтому, в отличие от put, не идемпотентен.
Вы можете раскрыть каждое поле как ресурс и выполнить несколько операций записи в каждое поле. Вы можете конвейер путей для уменьшения дополнительной задержки.
Я бы сказал, что это имеет смысл. Я считаю идею REST очень гибкой, поэтому, если вы обновляете одну сущность, почему бы не передать только поля, которые необходимо обновить, в вашей реализации. Это правда, что для этого требуется больше усилий на стороне сервера. Вы должны проверить, доступен ли объект и может ли он быть обновлен с помощью переданных данных, и вам нужны проверки достоверности (в отличие от данных, ориентированных на документ без схемы).
<!-- PUT books/1337 -->
<book>
<title>Hello</title>
<author>John Doe</author>
</book>
<!-- PUT books/1337 -->
<book>
<title>Hello here I am</title>
</book>
Вы можете просто отправить обновленные свойства в ресурс. Помните, что POST - это универсальный глагол, который вы можете использовать, чтобы делать все, что вам нужно, когда другие глаголы вам не подходят.
Прочтите статью Роя Можно использовать POST
Мне тоже никогда не нравились решения для частичных обновлений. Если бы я разрабатывал веб-службу для широкого использования, я бы, вероятно, выбрал POST
. Если бы его использовало довольно небольшое количество людей, т. Е. Я мог бы поговорить со всеми людьми, которых я ожидал назвать, у меня были бы две разные идеи для решения этой проблемы.
PUT
to a new ' обновить ресурс. Он будет в основном записывать обновление, которое вы хотите применить, а затем отвечать за то, чтобы не применять дубликаты. Я предполагаю, что это работает как система контроля версий, которая хранит список исправлений / наборов изменений и становится довольно сложной каждый раз, когда я пытаюсь продумать все крайние случаи.
PUT
в ресурс, но не меняйте любые поля, которых нет. Требовать, чтобы поля, для которых вы хотите NULL
, присутствовали со специальным атрибутом, указывающим, что вы хотите NULL
выводить. Это кажется гораздо более практичным, но не очень хорошо согласуется с консенсусом, что PUT
должен быть полным обновлением.
Если у кого-то есть указатели на обсуждение похожих идей, пожалуйста, отредактируйте / прокомментируйте соответственно.