Autore Topic: Lista diversa per elementi diversi  (Letto 233 volte)

Offline Nemesis

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Sistema operativo:
    Linux Debian Testing
Lista diversa per elementi diversi
« il: 17 Giugno 2015, 19:29:10 CEST »
0
Salve vi scrivo per chiedervi un immenso aiuto, dato che è da stamane che ci perdo la testa XD

Ho Creato una vista con una listView, che mi carica una lista presa dal database, e fin qui tutto bene.

Ora cliccando su ogni elemento della listview mi deve aprire un'altra vista, dove verrà caricato sempre con lo stesso layout ovviamente, una lista diversa, per ogni elemento della listview. 

La vista l'ho creata, e ho settato l'apertura con il setOnItemClickListener, e tutto ok.

Il problema è che non riesco a capire come poter caricare ora, liste diverse, su ogni elemento della lista.
Cioè lo riesco a fare  settando una sola lista di elementi :

Codice (Java): [Seleziona]
 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View fragment = inflater.inflate(R.layout.fragment_Stanze, container, false);
        Log.i("Stanze", "SONO NELLA FRAGMENT Stanze");
        listViewStanze = (ListView)fragment.findViewById(R.id.listViewStanzeITuoiAppuntamenti);
        listaStanze = Singleton.getInstance().getListaEdifici().get(2).getListaCase().get(0).getDettaglio().getListaStanze();
        adapterStanze = new AdapterStanze(this.listaStanze);
        listViewStanze.setAdapter(adapterStanze);
        return fragment
        }

Come si può capire vado a caricare la lista delle stanze, presa da getListaCase().get(0)

ma io vorrei che vengano settati come la vista su cui ho lavorato precedentemente, ogni elemento della listView, una lista delle stanze!! A differenza di prima dove caricavo direttamente la lista delle case, senza problemi.

Come diavolo posso fare? Ho pensato ad uno switch case, ma non riesco ad impostarlo sulla listview.....

Suggerimenti?
« Ultima modifica: 19 Giugno 2015, 15:13:53 CEST da Nemesis »

Offline Nemesis

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Sistema operativo:
    Linux Debian Testing
Re:Lista diversa per elementi diversi
« Risposta #1 il: 19 Giugno 2015, 15:07:52 CEST »
0
Ho risolto

Devo lavorare dinamicamente, nella vista precedente, quando vado ad aprire l'activity

Codice (Java): [Seleziona]
listViewCase.setOnItemClickListener(new AdapterView.OnItemClickListener() {    
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {        
Singleton.getInstance().setCasaSelezionata(listaCase.get(position));        
Intent intent0 = new Intent(getActivity(), ActivityStanze.class);                
startActivity(intent0);    }});


Come potete notare ho inserito prima dell'apertura dell'activity :
Codice (Java): [Seleziona]
Singleton.getInstance().setCasaSelezionata(listaCase.get(position));

Cioè nel singleton, ho creato un metodo di get e di set dell'oggetto che mi interessa!!! In questo modo, me lo prendo, e tramite "position" , in automatico viene fatto riferimento alla posizione dell'elemento selezionato della listview!!


Ora Nell'altro metodo devo semplicemente, richiamare il get!

Codice (Java): [Seleziona]
listViewStanze = (ListView)fragment.findViewById(R.id.listViewStanze);
listaStanze = Singleton.getInstance().getCasaSelezionata().getDettaglio().getListaStanze();
adapterStanze = new AdapterStanze(listaStanze);
listViewStanze.setAdapter(adapterStanze);


Ed il gioco è fatto!!! Altrimenti sarei stato costretto a creare tante viste, quanti erano gli elementi della lista di case!!! :D
« Ultima modifica: 19 Giugno 2015, 15:15:46 CEST da Nemesis »