Autore Topic: elenco di un array senza listview  (Letto 506 volte)

Offline ROS

  • Utente normale
  • ***
  • Post: 196
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 10.04
elenco di un array senza listview
« il: 19 Settembre 2011, 16:45:23 CEST »
0
Ciao a tutti,
per quel che dovrei fare, la listview non andrebbe bene: vorrei realizzare infatti una schermata con un elenco di oggetti e poi, dopo, alcune textview. Essendo la schermata "lunga", quindi, dovrei usare una scrollview.

Ho provato ad usare un linearlayout ed ad aggiungerci con un for dei layout all'interno, ma senza successo.
Qualche consiglio su come potrei creare una lista partendo da un array?

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:elenco di un array senza listview
« Risposta #1 il: 19 Settembre 2011, 16:48:39 CEST »
0
devi mettere la tua "schermata lunga" dentro una scrollview.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline ROS

  • Utente normale
  • ***
  • Post: 196
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 10.04
Re:elenco di un array senza listview
« Risposta #2 il: 19 Settembre 2011, 16:56:56 CEST »
0
devi mettere la tua "schermata lunga" dentro una scrollview.
Se c'e' la listview quest'ultima si collassa...

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:elenco di un array senza listview
« Risposta #3 il: 19 Settembre 2011, 17:01:01 CEST »
0
posta l'xml
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Verandi

  • Moderatore
  • Utente normale
  • *****
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:elenco di un array senza listview
« Risposta #4 il: 20 Settembre 2011, 00:11:30 CEST »
0
posta l'xml

Quoto e, in caso, potresti fare un adapter personalizzato in modo che, se l'array è di lunghezza n, la listview sia di lunghezza n+1 e alla posizione n+1 fai l'inflate delle textview che ti servono.

Offline ROS

  • Utente normale
  • ***
  • Post: 196
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 10.04
Re:elenco di un array senza listview
« Risposta #5 il: 20 Settembre 2011, 14:44:16 CEST »
0
Premettendo che inserire una listview in una scrollview e' pratica altamente sconsigliata, ho risolto con questo codice:
Codice: [Seleziona]
    public static void setListViewHeightBasedOnChildren(ListView listView) {
        ListAdapter listAdapter = listView.getAdapter();
        if (listAdapter == null) {
            // pre-condition
            return;
        }

        int totalHeight = 0;
        for (int i = 0; i < listAdapter.getCount(); i++) {
            View listItem = listAdapter.getView(i, null, listView);
            listItem.measure(0, MeasureSpec.UNSPECIFIED);
            totalHeight += listItem.getMeasuredHeight();
        }

        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = totalHeight + 25;// (listView.getDividerHeight() * (listAdapter.getCount()));
        listView.setLayoutParams(params);
    }
che con listview con 2 row sembra essere visualizzato completamente, dovro' fare prove piu' approfondite per listview piu' lunghe e con varie risoluzioni!

Citazione
potresti fare un adapter personalizzato in modo che, se l'array è di lunghezza n, la listview sia di lunghezza n+1 e alla posizione n+1 fai l'inflate delle textview che ti servono.
A fare un adapter con un elemento in piu' non ci vuole molto, basterebbe aggiungere un elemento in piu' all'array che lo genera...magari un array con ultimi campi vuoti. Cosi' andrebbe bene?

Offline Verandi

  • Moderatore
  • Utente normale
  • *****
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:elenco di un array senza listview
« Risposta #6 il: 20 Settembre 2011, 15:07:46 CEST »
0
Sì, dipendentemente da cosa ti serve, o scegli una listview in cui cambi la view dell'ultima riga nel metodo getview() dell'adapter, o la usi normalmente mettendo i pulsanti statici al di sotto (ma mi pare che tu non voglia fare così), oppure torni al metodo del primo post: aggiungi tu le righe (per esempio usi un LinearLayout come contenitore - nell'xml dell'activity-, e a questo aggiungi con il metodo addview le view che ti interessano).

Offline ROS

  • Utente normale
  • ***
  • Post: 196
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 10.04
Re:elenco di un array senza listview
« Risposta #7 il: 20 Settembre 2011, 15:16:22 CEST »
0
aggiungi tu le righe (per esempio usi un LinearLayout come contenitore - nell'xml dell'activity-, e a questo aggiungi con il metodo addview le view che ti interessano).
Grazie per i suggerimenti, appena ho un po' di tempo ci gioco un po' per trovare una soluzione definitva visto che la listview dentro una scrollview la uso in numerosi progetti...

Per quanto riguarda la parte quotata, cosi' non sono riuscito a farlo perche' mi avvisa che la view child aggiunta esiste gia' e se voglio aggiungerla devo prima rimuoverla con removeChild()

Offline Verandi

  • Moderatore
  • Utente normale
  • *****
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:elenco di un array senza listview
« Risposta #8 il: 20 Settembre 2011, 15:54:56 CEST »
+1
Per quanto riguarda la parte quotata, cosi' non sono riuscito a farlo perche' mi avvisa che la view child aggiunta esiste gia' e se voglio aggiungerla devo prima rimuoverla con removeChild()

Se per esempio la child fosse una sola textView, dovresti crearne una nuova ogni volta che l'aggiungi alla parent.  ;-)

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:elenco di un array senza listview
« Risposta #9 il: 21 Settembre 2011, 10:13:42 CEST »
+1
leggiti questo link
Risolvono il problema del collapse della listview dentro una scrollview....
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/