Appliquer dynamiquement un style à un bouton
Résolu
lamouchetsetse
Messages postés
112
Date d'inscription
Statut
Membre
Dernière intervention
-
lamouchetsetse Messages postés 112 Date d'inscription Statut Membre Dernière intervention -
lamouchetsetse Messages postés 112 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous, après de nombreuses recherche, je ne parviens pas à comprendre comment attribuer un style à un bouton.
voici mon xml:
et voici mon java:
de cette manière je n'ai que le texte du bouton qui s'affiche, le bouton en lui même ne s'affiche pas.
Merci à tous.
voici mon xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="bouton" parent="@android:style/Widget.Button">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:background">@drawable/bordure_bouton</item>
<item name="android:textAllCaps">false</item>
<item name="android:layout_centerInParent">true</item>
<item name="android:padding">10dp</item>
</style>
<declare-styleable name="testBouton">
<attr name="tBouton" format="reference"/>
</declare-styleable>
<style name="appT">
<item name="tBouton">@style/bouton</item>
</style>
</resources>
et voici mon java:
package fr.test;
import android.os.Build;
import android.os.Bundle;
import android.text.Html;
import android.text.Spanned;
import android.widget.Button;
import android.widget.RelativeLayout;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity
{
private RelativeLayout layoutPrincipal = null;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
layoutPrincipal = findViewById(R.id.layoutPrincipal);
Button bouton2 = new Button(this, null, R.attr.tBouton);
String textBouton2 = getResources().getString(R.string.cliquezMoi);
Spanned t = Html.fromHtml(textBouton2);
bouton2.setText(t);
layoutPrincipal.addView(bouton2);
}
}
de cette manière je n'ai que le texte du bouton qui s'affiche, le bouton en lui même ne s'affiche pas.
Merci à tous.
Configuration: Linux / Firefox 78.0
5 réponses
-
Tu peux le faire à la création du bouton
Button button = Button(context, null, 0, R.style.monBouton)
-
Bonjour,
Pourquoi ne pas créer ton bouton dans le layout XML et lui attribué ton style ?
En fait, tu mélanges 2 notions j'ai l'impression :
- la notion de style pour un composant système
- la personnalisation d'un composant custom
Tu es dans la 1ère catégorie, non ? Si oui, la partie suivante ne sert pas
<declare-styleable name="testBouton"> <attr name="tBouton" format="reference"/> </declare-styleable> <style name="appT"> <item name="tBouton">@style/bouton</item> </style> -
Bonjour BrunoCS. En fait, ce que je cherche a faire c'est appliquer un style a un bouton qui est creer en java lors d'un evenement par exemple.
-
Merci pour ta réponse, effectivement ta solution fonction mais uniquement sur lollipop ou supérieur. En fait, pour mon code, je me suis inspiré de cette méthode:
https://openclassrooms.com/forum/sujet/android-appliquer-un-style-a-un-bouton
Sinon j'ai toujours la possibilité de styler mon bouton java -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
oui merci beaucoup