
Originariamente inviato da
gino66
Allora come tu sai rattle ha due tendine io ne ho aggiunto 18 i cond come detto non escono come li salvo poi ho fatto come mi hai suggerito tu cioe ho rimasto quei cond e messo i relativi id niente allora ho provato a invetire gli id della tendina statica con animata cioe ultimo cons con id con cond 0 che e l"animata e quelle che non vanno sono divente tutte il richiamo dell"animata
Scusami ancora, ma non capisco.
IL fatto che ha cambiato in nome dei tuoi cond è dato dal motivo che il sistema di numerazione è quello esadecimale ,dopo il 9 si continua con le lettere fino alla f, infatti da 0 a f abbiamo 16 cifre, quindi la numerazione funziona in questo modo:
0 ,1, 2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,a ,b ,c ,d ,e ,f ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19 ,1a ,1b ,etc
Ti spiego come faccio io quando voglio aggiungere altre opzioni di scelta:
Se per esempio inizialmente ho un numero di scelta diciamo di 6 elementi nel file array.xml ho una cosa del genere
codice:
<string-array name="dialer_bg_values">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
</string-array>
Questa non è nient'altro che la lista che verrà visualizzata cioè questa
Screenshot_2014-09-05-19-26-41.jpg
Lo 0 è il primo elemento a cui di solito io attribuisco l' immagine stock, fino ad arrivare al 5 per un totale di 6 elementi, e quindi 6 opzioni di scelta
se voglio aumentare le mie opzioni di scelta, diciamo fino a 14 io modifico l'array.xml in questo modo
codice:
<string-array name="dialer_bg_values">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>-1</item>
<item>-2</item>
<item>-3</item>
<item>-4</item>
</string-array>
Da 0 a -4 per un totale di 14 opzioni di scelta
poi passando al file smali il codice da prendere in considerazione per quanto riguarda quello a 6 opzioni è cosi
codice:
const-string v2, "notification_panel_bg_chooser"
const v3, 0x0 questo è lo 0 corrispondente allo zero nell'array.xml, quindi prima opzione
invoke-static {v1, v2, v3}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v1
const v2, 0x1 questo è lo 1 corrispondente allo zero nell'array.xml,quindi seconda opzione
if-eq v1, v2, :cond_0
const v2, 0x2 questo è lo 2 corrispondente allo zero nell'array.xml,quindi terza opzione
if-eq v1, v2, :cond_1
const v2, 0x3 questo è lo 3 corrispondente allo zero nell'array.xml,quindi quarta opzione
if-eq v1, v2, :cond_2
const v2, 0x4 questo è lo 4 corrispondente allo zero nell'array.xml,quindi quinta opzione
if-eq v1, v2, :cond_3
const v2, 0x5 questo è lo 5 corrispondente allo zero nell'array.xml,quindi sesta opzione
if-eq v1, v2, :cond_4
const v2, 0x7f020071
goto :goto_0
:cond_0
const v2, 0x7f020267
goto :goto_0
:cond_1
const v2, 0x7f02026a
goto :goto_0
:cond_2
const v2, 0x7f02026b
goto :goto_0
:cond_3
const v2, 0x7f02029f
goto :goto_0
:cond_4
const v2, 0x7f0202a0
:goto_0
l'ordine degli id naturalmente deve corrispondere all'ordine che si vuole che venga visualizzata nella lista
Ora volendo arrivare ad avere 14 opzioni di scelta ,questo codice smali io lo modifico in questo modo (la parte in rosso)
codice:
const v3, 0x0
invoke-static {v1, v2, v3}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v1
const v2, 0x1
if-eq v1, v2, :cond_0
const v2, 0x2
if-eq v1, v2, :cond_1
const v2, 0x3
if-eq v1, v2, :cond_2
const v2, 0x4
if-eq v1, v2, :cond_3
const v2, 0x5
if-eq v1, v2, :cond_4
const v2, 0x6
if-eq v1, v2, :cond_5
const v2, 0x7
if-eq v1, v2, :cond_6
const v2, 0x8
if-eq v1, v2, :cond_7
const v2, 0x9
if-eq v1, v2, :cond_8
const v2, -0x1
if-eq v1, v2, :cond_9
const v2, -0x2
if-eq v1, v2, :cond_a
const v2, -0x3
if-eq v1, v2, :cond_b
const v2, -0x4 vedi qui come c'è sempre il riferimento a ciò che c'è nell'array.xml
if-eq v1, v2, :cond_c
const v2, 0x7f0200a6
goto :goto_0
:cond_0
const v2, 0x7f02053e
goto :goto_0
:cond_1
const v2, 0x7f0202d4
goto :goto_0
:cond_2
const v2, 0x7f0203a2
goto :goto_0
:cond_3
const v2, 0x7f02060c
goto :goto_0
:cond_4
const v2, 0x7f0206da
goto :goto_0
:cond_5
const v2, 0x7f0207a8
goto :goto_0
:cond_6
const v2, 0x7f020875
goto :goto_0
:cond_7
const v2, 0x7f020943
goto :goto_0
:cond_8
const v2, 0x7f020a12
goto :goto_0
:cond_9
const v2, 0x7f020adf
goto :goto_0
:cond_a
const v2, 0x7f020dab
goto :goto_0
:cond_b
const v2, 0x7f020c7b
goto :goto_0
:cond_c
const v2, 0x7f020d49
:goto_0
Spero quuesto ti possa essere di aiuto