Autore Topic: ListView Cliccabile  (Letto 1324 volte)

Offline FrancescoPiras

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
ListView Cliccabile
« il: 13 Aprile 2012, 11:42:28 CEST »
0
Salve!! Sono appena entrato nel mondo di Android e ancora sono un vero e proprio principiante.
Vi spiego subito il mio problema.
Devo creare la pagina principale di un'applicazione che presenta una serie di voci appartenenti ad una lista. Queste voci devono essere cliccabili e al momento del click devono aprire nuove pagine con delle informazioni tra cui anche una pagina con una mappa di google.

Fino ad ora ho creato la mia lista completa degli elementi, e proprio ora sorge il mio problema di riuscire a indirizzare una voce ad una nuova pagina. per intenderci quello che in html è eseguito dall'attributo "href".

Vi posto il codice xml e java che io ho creato fin'ora.
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >
   
    <ListView
       android:id="@+id/listview"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       />
</LinearLayout>

Codice (Java): [Seleziona]
package app.gusti.marmilla;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.*;

 
public class GustiMarmillaActivity extends ListActivity {
 
         
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                //setContentView(R.id.main);
               
                String[] cols = new String[]{"Il Progetto Gusti di Marmilla", "Il Territorio", "I Prodotti","Le ricette","Mappa Interattiva"};
                ListView lista = (ListView)this.findViewById(R.id.listview);
                ListAdapter adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, cols);
                lista.setAdapter(adapter);
        }
}


Offline pisciotta.f

  • Utente junior
  • **
  • Post: 52
  • Respect: +2
    • Mostra profilo
Re:ListView Cliccabile
« Risposta #1 il: 09 Maggio 2012, 21:43:27 CEST »
0
losta.setOnItemClickListener(new OnItemClickListener() {

         @Override
         public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            if(position == 2) {
               Intent intent = new Intent(Home.this, PaginaNuova.class);
               Home.this.startActivity(intent);
            }
          }
      });

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:ListView Cliccabile
« Risposta #2 il: 09 Maggio 2012, 22:18:20 CEST »
0
losta.setOnItemClickListener(new OnItemClickListener() {

         @Override
         public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            if(position == 2) {
               Intent intent = new Intent(Home.this, PaginaNuova.class);
               Home.this.startActivity(intent);
            }
          }
      });

Assolutamente no!!!!

Le ListActivity hanno un metodo chiamato onListItemClick(). Fai l'override come ho fatto io:

Codice (Java): [Seleziona]
        @Override
        protected void onListItemClick(ListView l, View v, final int position,
                        long id) {
                //fai quello che devi fare.
        }

Con il final int position puoi ritornare l'elemento cliccato, se per esempio inizialmente al adapter hai passato una lista, basta che fai lista.get(position).

Offline pisciotta.f

  • Utente junior
  • **
  • Post: 52
  • Respect: +2
    • Mostra profilo
Re:ListView Cliccabile
« Risposta #3 il: 09 Maggio 2012, 22:22:21 CEST »
0
Ma scusa non  hai visto che anche nel codice che ho postato io c'è l'override di quel metodo!? -.-

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:ListView Cliccabile
« Risposta #4 il: 10 Maggio 2012, 08:20:47 CEST »
0
Si ma tu fai l'override nel setOnItemClickListener(). Per fare bene lo fai nell'activity stessa. In effetti è la stessa cosa, solo che (il mio) risulta più pulito.

Offline xixietto

Re:ListView Cliccabile
« Risposta #5 il: 26 Novembre 2014, 16:37:58 CET »
0
Salve potreste spiegarmi meglio il risultato corretto? grazie in anticipo