vista studio sirve que para libreria example addview android background android-linearlayout clickable

studio - viewgroup android



¿Cómo establecer el efecto Ripple en LinearLayout programáticamente? (1)

Quiero establecer el fondo android.R.attr.selectableItemBackground en LinearLayout . Al usar XML no hay problemas (funciona)

<LinearLayout android:id="@+id/llMiner" android:layout_width="match_parent" android:layout_height="match_parent" android:background="?android:attr/selectableItemBackground" android:clickable="true" >

... pero tengo que hacer esto en código java, así que lo he intentado

llMiner.setClickable(true); llMiner.setBackgroundResource(android.R.attr.selectableItemBackground);

... y no funciona, de hecho obtengo una NotFoundException en esta segunda línea. Entonces, después de probar esta variante, pienso que el recurso es un Color.

llMiner.setClickable(true); llMiner.setBackgroundColor(android.R.attr.selectableItemBackground);

Este no lanza una excepción, pero ... no funciona (no hay cambio de fondo al presionar, pero el estado cambia al presionar como tiene que hacer) ... ¿alguna sugerencia?


Puedes usar de esta manera.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { // If we''re running on Honeycomb or newer, then we can use the Theme''s // selectableItemBackground to ensure that the View has a pressed state TypedValue outValue = new TypedValue(); getContext().getTheme().resolveAttribute(android.R.attr.selectableItemBackground, outValue, true); textView.setBackgroundResource(outValue.resourceId); }