Autore Topic: Ordine in listView  (Letto 1114 volte)

Offline angelo1977

  • Utente junior
  • **
  • Post: 59
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy nexsus
  • Sistema operativo:
    window 7 e ubuntu
Ordine in listView
« il: 23 Gennaio 2014, 01:26:08 CET »
0
Ciao è buon di a tutti,devo ordinare in una listView l'iserimento di dati in modo crescente,da 1 a 10 per dire..in un tutorial ho trovato come farlo con le date usando il metodo after(),ma questo metodo e solo della classe date...un aiutino è con un bel esempio..grazie mille

Offline ciccio

  • Utente junior
  • **
  • Post: 65
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Francesco Cervone
  • Sistema operativo:
    Mac OS X 10.9
Re:Ordine in listView
« Risposta #1 il: 23 Gennaio 2014, 15:59:07 CET »
0
Se associ alla listView una lista già pronta allora devi implementare un algoritmo di ordinamento.
Forse questo può esserti di aiuto: Algoritmo di ordinamento - Wikipedia
I più efficienti in termini di tempo sono il QuickSort ed il MergeSort.
Il più semplice da implementare ma più oneroso è il SelectionSort.

Altrimenti se devi fare un inserimento ordinato, ogni volta che inserisci un elemento ed arrivi nella posizione giusta, devi "shiftare" tutti gli elementi dell'array sulla destra.
« Ultima modifica: 23 Gennaio 2014, 16:01:16 CET da ciccio »

Offline angelo1977

  • Utente junior
  • **
  • Post: 59
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy nexsus
  • Sistema operativo:
    window 7 e ubuntu
Re:Ordine in listView
« Risposta #2 il: 23 Gennaio 2014, 19:48:11 CET »
0
Sono alle prime armi,è non so come comportarmi ho visto il link di wikipedia ma mi sembra arabo  posto il codice


Codice (Java): [Seleziona]
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                super.onActivityResult(requestCode, resultCode, data);
                if (resultCode == 3) {
                        String pkg = getPackageName();
                        nuovoLamierino = (LibreriaLamierino) data.getSerializableExtra(pkg + "nuovoLamierino");
                    if (lamierino.contains (nuovoLamierino)){
                        for (LibreriaLamierino ll: lamierino){ // per scandire tutti gli oggetti nella linkedList
                                if (ll.equals(nuovoLamierino)){
                                break;
                                }
                        }
                   
                }else{
                       
                        // qui devo ordinare la lista ma non riesco ad uscirne
                       
                                lamierino.addLast(nuovoLamierino);
                    }
                        }
                        listaLamierino.setAdapter(new ArrayAdapter<LibreriaLamierino>(ListaLamierino.this, android.R.layout.simple_dropdown_item_1line, lamierino));
                       
                }
« Ultima modifica: 23 Gennaio 2014, 20:37:04 CET da angelo1977 »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Ordine in listView
« Risposta #3 il: 23 Gennaio 2014, 20:23:51 CET »
0
La domanda è più che altro di Java, per cui in genere ti converrebbe cercare su risorse online dedicate al java più che alla programmazione android.

Comunque, per ordinare una list potresti usare la Collections.sort(tualista);

help java:
Collections (Java Platform SE 6)

help android: Collections | Android Developers

Infine un consiglio: nei forum dedicati alla programmazione di solito c'è una funzione per formattare opportunamente il codice così da renderlo più leggibile, in questo forum basta che evidenzi il codice java e clicchi sull'icona .
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline angelo1977

  • Utente junior
  • **
  • Post: 59
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy nexsus
  • Sistema operativo:
    window 7 e ubuntu
Re:Ordine in listView
« Risposta #4 il: 23 Gennaio 2014, 20:34:48 CET »
0
grazie..mi metto alla ricerca

Offline angelo1977

  • Utente junior
  • **
  • Post: 59
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy nexsus
  • Sistema operativo:
    window 7 e ubuntu
Re:Ordine in listView
« Risposta #5 il: 25 Gennaio 2014, 15:18:05 CET »
0
Ancora senza risolvere nulla leggendo in giro collection.sort non funziona su una LinkedList

Offline ciccio

  • Utente junior
  • **
  • Post: 65
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Francesco Cervone
  • Sistema operativo:
    Mac OS X 10.9
Re:Ordine in listView
« Risposta #6 il: 25 Gennaio 2014, 15:29:03 CET »
0
Dipende dal tipo di oggetto che hai dentro la LinkedList. La classe deve essere "Comparable". Ad esempio se è String allora funziona, ma se è un oggetto che hai creato tu che non è comparable no.
Devi usare questo metodo:

Collections (Java Platform SE 6)
, java.util.Comparator)

Comunque non dovresti postare qui questo tipo di domande, ma fare affidamento a forum specializzati in programmazione Java, ancora meglio leggere qualche guida per Java.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Ordine in listView
« Risposta #7 il: 25 Gennaio 2014, 16:56:48 CET »
0
Ancora senza risolvere nulla leggendo in giro collection.sort non funziona su una LinkedList

se sei ancora in alto mare dopo il suggerimento di ciccio, questo è il primo esempio che ho trovato con google:

java - How to sort linkedlist on some natural order? - Stack Overflow
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline angelo1977

  • Utente junior
  • **
  • Post: 59
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy nexsus
  • Sistema operativo:
    window 7 e ubuntu
Re:Ordine in listView
« Risposta #8 il: 25 Gennaio 2014, 19:26:45 CET »
0
Risolto poi sono riuscito a trovatre una guida grazie a tutti

Codice (Java): [Seleziona]
}
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                super.onActivityResult(requestCode, resultCode, data);
                if (resultCode == 3) {
                        String pkg = getPackageName();
                        nuovoLamierino = (LibreriaLamierino) data.getSerializableExtra(pkg + "nuovoLamierino");
                    if (lamierino.contains (nuovoLamierino)){
                        for (LibreriaLamierino ll: lamierino){ // per scandire tutti gli oggetti nella linkedList
                                if (ll.equals(nuovoLamierino)){
                                       
                                break;
                                }
                        }
                   
                }else{
                        lamierino.add(nuovoLamierino);
                        // ordina la LinkedList
                        Collections.sort(lamierino, new Comparator<LibreriaLamierino>() {
                            public int compare(LibreriaLamierino colonna1, LibreriaLamierino colonna2) {
                                  return colonna1.getColonna().compareTo(colonna2.getColonna());
                            }
                        });
                       
                   
                     
                        listaLamierino.setAdapter(new ArrayAdapter<LibreriaLamierino>(ListaLamierino.this, android.R.layout.simple_dropdown_item_1line, lamierino));
                        }
               
                }
                }