Autore Topic: ListActivity vs PreferenceActivity  (Letto 917 volte)

Offline lo

  • Utente junior
  • **
  • Post: 65
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus one
ListActivity vs PreferenceActivity
« il: 12 Settembre 2010, 20:07:16 CEST »
0
ciao a tutti,
sono alle prime armi quindi scusate le inesattezze.

nella mia activity principale sto cercando di ottenere una lista in stile "preferenze di default di android", quindi elementi con una voce principale ed una descrizione.
pensavo di utilizzare PreferenceActivity (che dovrebbe avere tutti gli strumenti per farlo in modo semplice) ma forse è più corretto estendere ListActivity e poi stilizzarla con lo stile delle preferenze.

ho creato un semplicissimo LinearLayout con una ListView che "renderizzo" con setContentView().
ho creato inoltre un layout per ogni singolo elemento con due TextView: "@+id/title" e "@+id/summary".

adesso avrei bisogno di popolare la mia lista, partendo possibilmente da un file xml tipo:
<entry title="title1" summary="summary1" />
<entry title="title2" summary="summary2" />
<entry title="title3" summary="summary3" />

è corretto? posso poi modificare dinamicamente titoli e descrizioni giusto?

ho letto di adapter ed inflater e da quello che ho capito, ma correggetemi se sbaglio, il primo dovrebbe servire per fare il binding di un oggetto java (classe, ArrayList, ecc...) con una View, mentre il secondo dorvrebbe essere l'analogo ma a partire da un file xml.
non sono riuscito a trovare un adapter che faccia al caso mio... è necessario crearne uno custom? e magari un classe Row? oppure è possibile farlo anche in modo più "rozzo"...

sapete darmi indicazioni su cosa documentarmi esattamente?

ovviamente link, esempi e frammenti di codice sono ben accetti!
grazie mille ;-)

« Ultima modifica: 12 Settembre 2010, 22:05:52 CEST da lo »

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:listview con i dati da xml
« Risposta #1 il: 12 Settembre 2010, 20:47:59 CEST »
0
Perché non usare direttamente le preference activity?
Codice (Java): [Seleziona]
public class MainAndroid extends PreferenceActivity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                addPreferencesFromResource (R.xml.preferences);
               
                Preference p = findPreference("key1");
                p.setOnPreferenceClickListener(new OnPreferenceClickListener() {
                       
                        public boolean onPreferenceClick(Preference preference) {
                                Toast.makeText(getApplicationContext(), "Hai premuto", Toast.LENGTH_LONG).show();
                                return false;
                        }
                });
        }

}
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res/com.leinardi.librettouniversitario">
        <PreferenceCategory
                android:title="Titolo">
                <Preference
                        android:key="key1"
                        android:title="Titolo 1"
                        android:summary="Sommario 1" />
                <Preference
                        android:key="key2"
                        android:title="Titolo 2"
                        android:summary="Sommario 2" />
                <Preference
                        android:key="key2"
                        android:title="Titolo 2"
                        android:summary="Sommario 2" />
        </PreferenceCategory>
</PreferenceScreen>
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline lo

  • Utente junior
  • **
  • Post: 65
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus one
Re:listview con i dati da xml
« Risposta #2 il: 12 Settembre 2010, 20:53:30 CEST »
0
ciao jd,
grazie mille per la tempestiva risposta!

si, all'inizio avevo puntato proprio sulla PreferenceActivity ma poi ho pensato che quello che volevo ottenere non era una lista "interattiva" di settaggi, ma una lista "piatta" di informazioni.
la sola cosa che mi sarebbe piaciuto "ereditare" era lo stile...

per questo ho pensato che fosse più corretto estendere una ListActivity... sbaglio?

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:listview con i dati da xml
« Risposta #3 il: 12 Settembre 2010, 21:32:34 CEST »
0
Sinceramente non so dirti se è sbagliato o sconsigliato, però se quello che vuoi ottenere è questo:


perché sbattersi tanto con le listview?

Inoltre le preferences hanno un tema apposito per le informazioni: style="?android:preferenceInformationStyle"
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res/com.leinardi.librettouniversitario">
        <PreferenceCategory
                android:title="Titolo">
                <Preference
                        android:key="key1"
                        style="?android:preferenceInformationStyle"
                        android:title="Titolo 1"
                        android:summary="Sommario 1" />
                <Preference
                        android:key="key2"
                        style="?android:preferenceInformationStyle"
                        android:title="Titolo 2"
                        android:summary="Sommario 2" />
                <Preference
                        android:key="key2"
                        style="?android:preferenceInformationStyle"
                        android:title="Titolo 2"
                        android:summary="Sommario 2" />
        </PreferenceCategory>
</PreferenceScreen>

Poi ora non so bene in quale contesto devi inserire questa lista, magari conoscendolo risulterebbe ovvio l'impiego delle listveiw.
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline lo

  • Utente junior
  • **
  • Post: 65
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus one
Re:listview con i dati da xml
« Risposta #4 il: 12 Settembre 2010, 21:47:11 CEST »
0
Citazione
perché sbattersi tanto con le listview
bè, messa così effettivamente...
per quanto ho capito la classe ListPreference non è legata all'activity ma ha una gerarchia tutta sua, sembra decisamente dedicata alla sola gestione delle preferenze...

Citazione
non so bene in quale contesto devi inserire questa lista, magari conoscendolo risulterebbe ovvio l'impiego delle listview
scusa l'ignoranza, cosa intendi di preciso?
vorrei ottenere una schermata come lo screenshot che hai uploadato e, in base ad eventi legati alla ricezioni di determinati sms, aggiornare le descrizioni.

a livello di render grafico la ListPreference è l'ideale ma a livello concettuale forse non ci combina granché...
ma forse mi sto facendo troppe paranoie inutili :)

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:listview con i dati da xml
« Risposta #5 il: 12 Settembre 2010, 22:08:46 CEST »
0
scusa l'ignoranza, cosa intendi di preciso?
vorrei ottenere una schermata come lo screenshot che hai uploadato e, in base ad eventi legati alla ricezioni di determinati sms, aggiornare le descrizioni.

a livello di render grafico la ListPreference è l'ideale ma a livello concettuale forse non ci combina granché...
Mah, non so, non hai tutti i torti sull'uso errato delle ListPreference.
Però una listview mi sembra esagerata, soprattutto per tre soli elementi. Lavorando un pochino di xml dovresti riuscire a ricreare quello che ti serve tramite tablayout + linear/relative layout.
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline lo

  • Utente junior
  • **
  • Post: 65
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus one
Re:ListActivity vs PreferenceActivity
« Risposta #6 il: 12 Settembre 2010, 22:21:42 CEST »
0
Citazione
una listview mi sembra esagerata, soprattutto per tre soli elementi
in che senso, è in qualche modo "pesante"?
sinceramente, a parte eventuali ragioni che non conosco, una lista è tale anche se di soli tre elementi... O:-)

Citazione
dovresti riuscire a ricreare quello che ti serve tramite tablayout + linear/relative layout
posso chiederti perché mi consigli un tablayout nonostante non necessiti di tabs?

stavo provando a ricreare lo stile delle preference, ma non è poi così immediato...
che tu sappia, è possibile trovare da qualche parte i valori di default delle Preference di textsize, padding, ecc...?
o magari lo stile "android:preferenceInformationStyle" è applicabile anche alle TextView (non credo)...

grazie mille!

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:ListActivity vs PreferenceActivity
« Risposta #7 il: 12 Settembre 2010, 22:27:33 CEST »
0
in che senso, è in qualche modo "pesante"?
sinceramente, a parte eventuali ragioni che non conosco, una lista è tale anche se di soli tre elementi... O:-)
Ti consiglio di vedere questo filmato: http://www.youtube.com/watch?v=wDBM6wVEO70
Romain Guy stesso consiglia di evitare le listview se non sono strettamente necessarie.

posso chiederti perché mi consigli un tablayout nonostante non necessiti di tabs?
Parlavo in generale, normalmente una listview con un numero fisso e piccolo di elementi può essere sostituita da tablayout + relativelayout.
Nel tuo caso basta addirittura solo il relative.
Io non avrei dubbi.

In ogni caso ti consiglio nuovamente di vedere il filmato, è molto istruttivo.

stavo provando a ricreare lo stile delle preference, ma non è poi così immediato...
che tu sappia, è possibile trovare da qualche parte i valori di default delle Preference di textsize, padding, ecc...?
o magari lo stile "android:preferenceInformationStyle" è applicabile anche alle TextView (non credo)...

Proprio non so, mi spiace...
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline lo

  • Utente junior
  • **
  • Post: 65
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus one
Re:ListActivity vs PreferenceActivity
« Risposta #8 il: 12 Settembre 2010, 22:36:07 CEST »
0
ok, grazie mille!