Переключатель тем в приложении Android
В приложении есть RecyclerView, элементы которого имеют фон, который описан ниже в файле corner_bg.xml. Хочу сделать возможность выбора темы в приложении. Текущий и темный цвет. В темном будут другие цвета у элементов списка. Как это можно реализовать? Понятно что в style.xml нужно создать новую тему и как-то в активити переключать. А как сделать изменение фона у элементов списка?
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<corners
android:radius="4dp"
/>
<gradient
android:angle="45"
android:startColor="@color/colorPurple"
android:endColor="@color/colorOrange"
android:type="linear"
/>
<padding
android:left="0dp"
android:top="0dp"
android:right="0dp"
android:bottom="0dp"
/>
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<corners
android:radius="4dp"
/>
<gradient
android:angle="45"
android:startColor="@color/colorOrange"
android:endColor="@color/colorPurple"
android:type="linear"
/>
<padding
android:left="0dp"
android:top="0dp"
android:right="0dp"
android:bottom="0dp"
/>
</shape>
</item>
</selector>
Ответы (1 шт):
Автор решения: Danil Kyrgyzbaev
→ Ссылка
Так сделал в адаптере:
@Override
public void onBindViewHolder(@NonNull NoteViewHolder holder, int position) {
holder.bind(sortedList.get(position));
holder.itemView.setBackgroundResource(R.drawable.bacground_button);
}