Je vais implémenter un LinearLayout
dans lequel les champs d'entrée sont générés par programme en fonction du nombre de champs de la table de base de données.
Malheureusement, lorsque j'essaie de définir l'attribut: textApperance
comme textApperanceLarge
dans le TextView
, cela ne fonctionne pas. Voici 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]);
Utilisez comme ça. Ça va marcher.
textView.setTextAppearance(this, Android.R.style.TextAppearance_Large);
Ou, depuis l'API 23, vous n'avez pas besoin de passer un contexte. Par conséquent, vous pouvez simplement appeler:
textView.setTextAppearance(Android.R.style.TextAppearance_Large);
Si vous souhaitez prendre en charge l'API 23 ou supérieure ou inférieure, vous pouvez utiliser la méthode ci-dessous pour simplifier votre tâche. Utilisez la méthode ci-dessous uniquement si vous ciblez déjà l'API 23 ou une version ultérieure. Si vous ciblez l'API est inférieure à 23, le code ci-dessous donnera une erreur car la nouvelle méthode n'y était pas disponible.
public void setTextAppearance(Context context, int resId) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
super.setTextAppearance(context, resId);
} else {
super.setTextAppearance(resId);
}
}
Utilisez la méthode TextViewCompat.setTextAppearance()
qui s'occupera de vos vérifications de version sdk.