2011-10-14 3 views
5

Notez que je suis en utilisant Mono pour AndroidAndroid TextView Paramètre defStyle ignoré?

J'ai un ListView des éléments qui peut être étendue en cliquant sur un bouton « Plus » au bas de la liste. La liste est définie en XML mais le bouton more est simplement un TextView cliquable qui est ajouté au bas de la liste via AddFooterView. J'essaie d'appliquer un style prédéfini au TextView créé à l'exécution, mais cela ne fonctionne pas.

mMoreProductsButton = new TextView(this, null, Resource.Style.more_button); 
mMoreProductsButton.Text = "More"; 
mMoreProductsButton.Click += new EventHandler(MoreProductsButton_Click); 
mListView.AddFooterView(mMoreProductsButton); 

documentation TextView montre cette signature: TextView(Context context, AttributeSet attrs, int defStyle)

defStyle est défini dans la documentation que le style par défaut à appliquer à la vue. Un exemple que j'ai vu ailleurs a passé null comme le AttributeSet mais je ne suis pas sûr que cela soit valide ou lié à mon problème.

J'ai trouvé ce bogue et je ne sais pas si elle est liée et le courant: http://code.google.com/p/android/issues/detail?id=12683

Toutes les suggestions sont appréciés!

Répondre

1

J'ai également cherché la réponse à cette question. Il semble que ce soit un bogue Android parce que je n'ai pas trouvé un moyen de style s'appliquant à la création de vues. Pourquoi ne voulez-vous pas gonfler votre TextView?
Comme ceci:

layout/my_view.xml

<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:style="@style/more_button" /> 

Activité

TextView mMoreProductsButton = (TextView) getLayoutInflater().inflate(R.layout.my_view, null, false); 

Désolé, je ne sais pas si elle réalisable en Mono.

+0

Cela fonctionne dans Mono et je le fais dans beaucoup d'autres endroits où j'assemble des mises en page complexes. Dans ce cas, il a semblé inutile de créer une ressource XML, puis de la charger et de la gonfler quand il s'agit d'un simple TextView. Il m'est étrange que la plateforme Android ne supporte pas la création dynamique d'éléments stylisés. – dubj