Autore Topic: ListView dinamica come fare?  (Letto 1566 volte)

Offline nikel90

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    eee pad transformer
  • Sistema operativo:
    3.1
ListView dinamica come fare?
« il: 27 Giugno 2011, 17:47:46 CEST »
0
ciao gente! ho bisogno di aggiornare e aggiungere elementi ad una listview in maniera dinamica (in pratica il tablet riceve via bluetooth dei messaggi e ogni messaggio deve apparire come elemento della lista)

per fare ciò ho trovato questo... :

Codice (Java): [Seleziona]
public class LstActivity extends ListActivity {

                //LIST OF ARRAY STRINGS WHICH WILL SERVE AS LIST ITEMS
                ArrayList<String> listItems=new ArrayList<String>();

                //DEFINING STRING ADAPTER WHICH WILL HANDLE DATA OF LISTVIEW
                ArrayAdapter<String> adapter;

                //RECORDING HOW MUCH TIMES BUTTON WAS CLICKED
                int clickCounter=0;

                @Override
                public void onCreate(Bundle icicle) {

                super.onCreate(icicle);
                setContentView(R.layout.main);
                adapter=new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1,
                    listItems);
                setListAdapter(adapter);
                }

                //METHOD WHICH WILL HANDLE DYNAMIC INSERTION
                public void addItems(String s) {
                 listItems.add(s);
                 adapter.notifyDataSetChanged();
                }
               
                }

tuttavia non sono in grado di accedere al metodo addItems dalla activity principale della mia applicazione!

come faccio?

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:ListView dinamica come fare?
« Risposta #1 il: 28 Giugno 2011, 14:27:39 CEST »
0
dov'è il metodo addItem del quale parli?
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline nikel90

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    eee pad transformer
  • Sistema operativo:
    3.1
Re:ListView dinamica come fare?
« Risposta #2 il: 28 Giugno 2011, 15:40:04 CEST »
0
nell'activity della lista

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:ListView dinamica come fare?
« Risposta #3 il: 28 Giugno 2011, 16:11:53 CEST »
0
Penso che il tuo problema sia riconducibile a quello più generale "come passare dati tra activity diverse" e quello che stai cercando di fare non è il metodo corretto.

Ipotizzo cosa vuoi fare e propongo un metodo: sono nella activity lista, dal menu scelto aggiungi item e mi si apre la finestra di edit, inserisco dati, premo salva e spedisco alla precedente activity (la chiamante, l'activity lista) i dati inseriti, a questo punto è l'activity lista ad aggiornare la base dati in base ai dati ritornati.

Farebbe al caso tuo?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline nikel90

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    eee pad transformer
  • Sistema operativo:
    3.1
Re:ListView dinamica come fare?
« Risposta #4 il: 28 Giugno 2011, 17:18:49 CEST »
0
Penso che il tuo problema sia riconducibile a quello più generale "come passare dati tra activity diverse" e quello che stai cercando di fare non è il metodo corretto.

Ipotizzo cosa vuoi fare e propongo un metodo: sono nella activity lista, dal menu scelto aggiungi item e mi si apre la finestra di edit, inserisco dati, premo salva e spedisco alla precedente activity (la chiamante, l'activity lista) i dati inseriti, a questo punto è l'activity lista ad aggiornare la base dati in base ai dati ritornati.

Farebbe al caso tuo?

no direi proprio di no...

in pratica (a parte che il passaggio di dati tra activity l'ho risolto con una bellissima variabile globale ;) anche se devo dire che mi manca come creare un evento "valuechanged" ma non è strettamente necessario ai miei scopi )

in ogni caso.. l'activity che gestisce il bluetooth riceve i dati li trasforma in stringa e deve aggiungerli automaticamente come elementi della lista...
tutto questo dovrebbe avvenire dopo la pressione di un bottone in un'altra activity che è quella principale del programma...

per capirci meglio... io clicco "refresh" il mio programma invia al cellulare dei comandi di modo che lui mi passi gli ultimi n sms ricevuti e il tablet li aggiunge automaticamente alla lista...


ah PS: niente intent! sono troppo complicati per uno alle prime armi con java!

Offline nikel90

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    eee pad transformer
  • Sistema operativo:
    3.1
Re:ListView dinamica come fare?
« Risposta #5 il: 29 Giugno 2011, 17:50:10 CEST »
0
ora che rileggo il tuo post... si togliendo la parte dell'immisione manuale il concetto è identico ovvero aggiungere elementi alla lista da un altra activity...

faccio un ipotesi... non so se si possa fare... ma se si crea un evento "custom" che visualizza il cambiamento della mia variabile globale e lo si rimanda all'activity della lista potrebbe funzionare no?

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:ListView dinamica come fare?
« Risposta #6 il: 30 Giugno 2011, 11:17:29 CEST »
0
Citazione da: nikel90
ah PS: niente intent! sono troppo complicati per uno alle prime armi con java!
Sarebbe opportuno colmare questa lacuna al più presto per poter sviluppare su android :-P

Tornando IT, non capisco il problema. Devi aggiungere dati ad una lista dopo il ricevimento di alcuni "comandi" via bluetooth ? Quando ricevi i messaggi, prendi l'adapter della lista, aggiungi l'item e aggiorni la lista.

Comunque è dura programmare con il "copia e incolla"  :-P

Offline nikel90

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    eee pad transformer
  • Sistema operativo:
    3.1
Re:ListView dinamica come fare?
« Risposta #7 il: 30 Giugno 2011, 16:47:16 CEST »
0
è dura ma purtroppo per come sono io.. non sono in grado di studiare sui libri ma solo sugli "esercizi"... agli intent ci lavorerò prossimamente.. ;)

in ogni caso..

io l'adapter devo averlo per forza nell'activity della lista o posso non avere un activity della lista e dichiararmelo nella activity che riceve i messaggi? come faccio poi per refreshare la lista una volta che l'adapter è aggiornato?

grazie!

EDIT: ce l'ho fatta! ho usato il tuo metodo senza listactivity e dopo un pò mi sono accorto che l'arrayadapter andava anche inizializzato... unica cosa... è che gli item della lista sono più o meno giganti...
« Ultima modifica: 30 Giugno 2011, 17:22:49 CEST da nikel90 »