Я разрабатываю свое приложение, используя avd на основе Lollipop, где я использовал SetBackgroundResource, чтобы установить фон строки listview с помощью пользовательского drawable (layer-list). Он отлично работает.Android SetBackgroundResource & SetBackground не работает pre lollipop
Строка x LinearLayout имеет заданный по умолчанию синий фон.
Jelly Bean и Kit Kat, используя SetBackgroundResource удаляет синий цвет по умолчанию, но не устанавливает его на запрошенный фоном. Я также попробовал SetBackground после изменения minsdk с 15 до 16.
По-прежнему нет радости.
((LinearLayout)v.getParent()).setBackgroundResource(R.drawable.border_purple);
Я также пробовал;
((LinearLayout)v.getParent()).setBackground(ContextCompat.getDrawable(context,R.drawable.border_orange));
Строка XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent" android:layout_width="match_parent"
android:orientation="vertical"
android:background="@drawable/border_blue"
android:padding="12dp"
android:layout_marginBottom="16dp"
android:id="@+id/layout_row">
<TextView
android:layout_height="wrap_content"
android:id="@+id/item_title"
android:text=""
android:layout_width="match_parent"
android:textSize="20sp"
android:textColor="@color/primary_dark_material_light"
android:background="#FFFFFF"/>
<View
android:layout_width="match_parent"
android:layout_height="2px"
android:background="#D3DFE3" />
<TextView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/item_byline"
android:text=""
android:background="#FFFFFF"/>
</LinearLayout>
Вы пробовали это:.. '((LinearLayout) v.getParent()) setBackgroundResource (. GetResources() getDrawable (R.drawable.border_purple));' –
Я попытался context.getResources() getDrawable (R .drawable.border_blue), который создает ошибку int, не может быть применен к drawable и getResources без контекста, вызывает ошибку, которая не может разрешить метод. – tywsge