Подтвердить что ты не робот

Программно установить "? SelectableItemBackground" на Android-просмотр

В xml я часто делаю это, чтобы эмулировать эффект onClick:

<android.support.v7.widget.CardView
    android:id="@+id/cardView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:foreground="?selectableItemBackground">

    ...

</android.support.v7.widget.CardView>

Есть ли способ доступа к ?selectableItemBackground в java?

4b9b3361

Ответ 1

Для appcompat вы можете использовать

TypedValue outValue = new TypedValue();
getContext().getTheme().resolveAttribute(android.R.attr.selectableItemBackground, outValue, true);
cardView.setBackgroundResource(outValue.resourceId);

Ответ 2

Вы должны ссылаться на него как

android.R.attr.selectableItemBackground

Ответ 3

Попробуйте ввести код.

int[] attrs = new int[]{R.attr.selectableItemBackground};
TypedArray typedArray = context.obtainStyledAttributes(attrs);
int backgroundResource = typedArray.getResourceId(0, 0);
cardView.setBackgroundResource(backgroundResource);
cardView.setClickable(true);
typedArray.recycle();