2011-10-14 9 views
5

Nota che sto usando Mono per AndroidParametro defStyle di TextView Android ignorato?

Ho un ListView di elementi che può essere esteso facendo clic su un pulsante "Altro" in fondo alla lista. L'elenco è definito in XML, ma il pulsante più è semplicemente un TextView cliccabile che viene aggiunto in fondo all'elenco tramite AddFooterView. Sto cercando di applicare uno stile predefinito al TextView creato in runtime ma non funziona.

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

documentazione TextView mostra questa firma: TextView(Context context, AttributeSet attrs, int defStyle)

defStyle è definito nella documentazione come stile predefinito da applicare alla vista. Un esempio che ho visto altrove ha superato null come AttributeSet ma non sono sicuro che sia valido o correlato al mio problema.

ho trovato questo bug e non sono sicuro se si riferisce e la corrente: http://code.google.com/p/android/issues/detail?id=12683

Tutti i suggerimenti sono apprezzati!

risposta

1

Ho anche cercato di rispondere a questa domanda. Sembra essere un bug di Android perché non ho trovato un modo di applicare lo stile per creare Views. Perché non vuoi gonfiare il tuo TextView?
Ti piace questa:

layout/my_view.xml

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

Attività

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

Mi dispiace, non so se è praticabile in Mono.

+0

Questo è praticabile in Mono e lo faccio in molti altri luoghi in cui sto assemblando layout complessi. In questo caso è sembrato inutile creare una risorsa XML e quindi caricarla e gonfiarla quando è solo una semplice TextView. È strano per me che la piattaforma Android non supporti la creazione dinamica di elementi in stile. – dubj