Autore Topic: Come aprire un activity per ogni riga cliccata in una listView  (Letto 286 volte)

Offline Claudio84

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    smartphone
  • Sistema operativo:
    windows 7
Come aprire un activity per ogni riga cliccata in una listView
« il: 20 Gennaio 2015, 13:29:22 CET »
0
Buongiorno a tutti...ho questo problema...ho creato una listView dove ogni riga indica un capitolo.Io vorrei che se una riga viene cliccata, si aprisse l'activity inerente a quel capitolo..
In questo momento(atravverso il codice che allego) riesco a farlo, però qualsiasi riga clicco, mi apre sempre la stessa activity...dove sbaglio???grazie a tutti.
Codice (Java): [Seleziona]
public class TeoriaActivity extends ActionBarActivity {
           @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_teoria);
               
                // definisco un array di stringhe
                String[] nameproducts = new String[] {"1","2","3","4","5","6" };

                // definisco un ArrayList
                final ArrayList <String> listp = new ArrayList<String>();
                for (int i = 0; i < nameproducts.length; ++i) {
                     listp.add(nameproducts[i]);
                }
                // recupero la lista dal layout
                final ListView mylist = (ListView) findViewById(R.id.listView1);

                // creo e istruisco l'adattatore
                final ArrayAdapter <String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listp);

                // inietto i dati
                mylist.setAdapter(adapter);  
               
                mylist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                   
                    public void onItemClick(AdapterView<?> adattatore, final View componente, int pos, long id){
                      // qui dentro stabilisco cosa fare dopo il click
                         final String titoloriga = (String) adattatore.getItemAtPosition(pos);  
                         Log.d("List", "Ho cliccato sull'elemento con titolo" + titoloriga);  
                        Intent nuovo = new Intent(TeoriaActivity.this,TermodinamicaActivity.class);
                       
                        startActivity(nuovo);
                    }

                                private Menu getListAdapter() {
                                        // TODO Auto-generated method stub
                                        return null;
                                }

                               
                       
                                       
                                 
             });
               
               
               
            }    }
       

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 593
  • Respect: +132
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Come aprire un activity per ogni riga cliccata in una listView
« Risposta #1 il: 20 Gennaio 2015, 14:41:06 CET »
0
Codice (Java): [Seleziona]
  // qui dentro stabilisco cosa fare dopo il click
  final String titoloriga = (String) adattatore.getItemAtPosition(pos);
  Log.d("List", "Ho cliccato sull'elemento con titolo" + titoloriga);
  Intent nuovo;
  switch (pos) {
    case 0:
      //Primo capitolo
      nuovo = new Intent(TeoriaActivity.this,TermodinamicaActivity.class);
      break;
    case 1:
      //Secondo capitolo
      nuovo = new Intent(TeoriaActivity.this,CapitoloDueActivity.class);
      break;
    case 2:
      //Terzo capitolo
      nuovo = new Intent(TeoriaActivity.this,CapitoloTreActivity.class);
      break;
    //...e così via
    default:
      //Capitolo non previsto
      nuovo = new Intent(TeoriaActivity.this,CapitoloNonDefinitoActivity.class);
      break;
  }
  startActivity(nuovo);
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline Claudio84

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    smartphone
  • Sistema operativo:
    windows 7
Re:Come aprire un activity per ogni riga cliccata in una listView
« Risposta #2 il: 20 Gennaio 2015, 15:40:13 CET »
0
perfetto...grazie mille era quello che stavo cercando!!!