Tout d'abord, vous n'avez pas besoin d'utiliser un inflateur de mise en page pour créer un simple bouton. Vous pouvez simplement utiliser :
button = new Button(context);
Si vous voulez donner un style au bouton, vous avez deux possibilités : la plus simple est de spécifier tous les éléments en code, comme le suggèrent de nombreuses autres réponses :
button.setTextColor(Color.RED);
button.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
L'autre option consiste à définir le style en XML et à l'appliquer au bouton. Dans le cas général, vous pouvez utiliser un ContextThemeWrapper
pour ça :
ContextThemeWrapper newContext = new ContextThemeWrapper(baseContext, R.style.MyStyle);
button = new Button(newContext);
Pour modifier les attributs liés au texte sur un TextView (ou ses sous-classes comme le bouton), il existe une méthode spéciale :
button.setTextAppearance(R.style.MyTextStyle);
Ou, si vous avez besoin de prendre en charge les appareils pré API-23 (Android 6.0)
button.setTextAppearance(context, R.style.MyTextStyle);
Cette méthode ne peut pas être utilisée pour modifier tous les attributs ; par exemple, pour modifier le rembourrage, il faut utiliser un fichier ContextThemeWrapper
. Mais pour la couleur du texte, la taille, etc. vous pouvez utiliser setTextAppearance
.