Je veux définir l'arrière-plan Android.R.attr.selectableItemBackground
vers un LinearLayout
. Lors de l'utilisation de XML, il n'y a aucun problème (cela fonctionne)
<LinearLayout
Android:id="@+id/llMiner"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="?android:attr/selectableItemBackground"
Android:clickable="true" >
... mais je dois le faire en Java, donc j'ai essayé cela
llMiner.setClickable(true);
llMiner.setBackgroundResource(Android.R.attr.selectableItemBackground);
... et ça ne marche pas, en fait j'obtiens un NotFoundException
sur cette deuxième ligne. Donc, après avoir essayé cette variante en pensant que la ressource est une couleur.
llMiner.setClickable(true);
llMiner.setBackgroundColor(Android.R.attr.selectableItemBackground);
Celui-ci ne lance pas d'exception, mais ... ne fonctionne pas (il n'y a pas de changement de fond lors de la pression, mais le changement d'état est pressé comme il doit le faire) ... une suggestion?
Vous pouvez utiliser de cette façon.
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();
this.getTheme().resolveAttribute(Android.R.attr.selectableItemBackground, outValue, true);
textView.setBackgroundResource(outValue.resourceId);
}