Невозможно делать то, что вы хотите. Ваша функция-член-член не может изменить значение данных (адрес, на который он указывает), но нет ничего о том, чтобы не изменять содержимое, на которое оно указывает, как вы уже заметили. Использование функции std::vector
помогло бы, поскольку внутри функции-члена const вы имели бы вектор-константу, не имея возможности вызвать какую-либо из ее изменяемых функций.
создайте селектор
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/primary" android:state_checked="true" />
<item android:drawable="@android:color/transparent" />
</selector>
и установите
app:itemBackground="@drawable/nav_view_item_background"
, тогда выделенный элемент будет выделен.
, если вы хотите изменить текст затем установите
app:itemTextColor="@drawable/nav_view_item_textcolor"
и создайте для него селектор, как
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@android:color/white" android:state_checked="true" />
<item android:color="@color/primary" />
</selector>
Примечание: ответ Яшоды не сработал для меня, что верно в большинстве случаев.
Хотя я установил state_checked
, это правда и дает ему яркий цвет, кажется, что элемент никогда checked.
Для большего поиска я обнаружил, что проблема произошла с пунктом меню. Я не дал проверенному элементу true в пункте меню в файле меню.
Затем мне нужно добавить к нему тег android:checkable=true
.
и работает как прелесть.
app:itemTextColor
следует применять к<android.support.design.widget.NavigationView
. – Vahid Amiri 5 February 2016 в 16:21