Réglage TextView TextAppeareance par programmation sous android
Je vais mettre en œuvre un LinearLayout
dans lequel les champs de saisie sont généré par programmation en fonction du nombre de champs de la table de base de données.
Malheureusement, lorsque j'essaie de mettre l'attribut: textApperance
comme textApperanceLarge
dans le TextView
, il ne fonctionne pas. Ci-dessous mon code...
for (int i = 0; i < selectedProducts; i++) {
premLayout[i] = new LinearLayout(this);
premLayout[i].setLayoutParams(new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
premLayout[i].setOrientation(LinearLayout.HORIZONTAL);
premLayout[i].setGravity(Gravity.TOP);
premTextView[i] = new TextView(this);
premTextView[i].setLayoutParams(new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,
2.0f));
premTextView[i].setTextAppearance(this, android.R.attr.textAppearanceLarge);
premTextView[i].setText(premiumChannels.get(i));
premTextView[i].setId(i + 600);
int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 20, getResources().getDisplayMetrics());
premTextView[i].setWidth(px);
premLayout[i].addView(premTextView[i]);
- Par pas de travail, je suppose que signifie le texte est juste "normal"de la taille?
- la taille par défaut est TextAppearanceSmall...mais je tiens à définir...TextAppearanceLarge.
- vous êtes à la construction de votre propre apparence du texte de l'attribut ou que vous utilisez à partir de android. dans votre code, vous utilisez à partir de android .
- Je suis en train d'utiliser de l'apparence du texte fourni par android.
Vous devez vous connecter pour publier un commentaire.
L'utilisation de ce genre. Il va travailler.
Ou, depuis API 23, vous n'avez pas besoin de passer un contexte. Par conséquent, vous pouvez simplement appeler:
Si vous voulez soutenir l'API 23 ou plus ainsi que plus bas, vous pouvez utiliser la méthode ci-dessous pour vous simplifier la tâche. Utilisez la méthode ci-dessous uniquement si vous êtes déjà ciblage de l'API 23 ou plus. Si vous êtes le ciblage de l'API est de moins de 23, le code ci-dessous donnera l'erreur que la nouvelle méthode n'est pas disponible dans elle.
android.R.style.TextAppearance_Large
est un style, et dans ce cas il se passe à la valeur définie pour l'attribut, pour le thème par défaut.setTextAppearance(@NonNull TextView textView, @StyleRes int resId)
pour la compatibilité descendante.TextViewCompat.setTextAppearance(@NonNull TextView textView, @StyleRes int resId)
Utilisation
TextViewCompat.setTextAppearance()
méthode qui permettra de prendre soin de votre version de sdk contrôles.