Autore Topic: listActivity con listAdapter o Activity con listView ? questo il dilemma !  (Letto 797 volte)

Offline ldc

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows XP
Ragazzi,

vorrei fare un'activity che ha in un linea layout una textview col titolo, un'altra textview con una piccola descrizione e poi una listview clickabile i cui item mi avviano delle activity secondarie.

Ho letto qualcosa in rete che mi consigliava di usare i ListAdapter :

Codice: [Seleziona]
public class MiaActivity extends ListActivity 
{
       
        protected void onResume()
        {
                super.onResume();
       
        setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1,
                new String[] {
                                        "primo",
                                        "secondo",
                                        "terzo",
                                       
                                "dgfgdf"}
                ));

       
        }

        protected void onListItemClick(ListView l, View v, int position, long id)
        {
                Intent intent = new Intent(this, Prima.class);
                String var = getListAdapter().getItem(position).toString();
                intent.putExtra("film", var);
                startActivity(intent);
        }
       
       
}

e mi funziona. Ma come faccio ad inserire questo list adapter nella mia activity che ha anche le 2 textview ?


Un'altra strada che ho provato è la seguente :

Codice: [Seleziona]
public class MiaActivity extends Activity
{
       
        ListView lv;

        @Override
    public void onCreate(Bundle savedInstanceState)
        {     
                super.onCreate(savedInstanceState);
                   
        setContentView(R.layout.main);
       
        lv = (ListView) findViewById (R.id.lv);
       
        ListAdapter la = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
                        new String[] {
                                "Primo",
                                "Secondo",

                                "dgfgdf"}
        );
        lv.setAdapter(la);
       
       

        }
       
}

ma adesso non saprei come associare al click degli item della listView lo start delle activity secondarie, così come fatto nella prima soluzione col ListAdapter.

Non so se son riuscito a farvi capire le mie problematiche...

Avete suggerimenti, consigli, ecc. ?

grazie mille

Offline ldc

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows XP
Re:listActivity con listAdapter o Activity con listView ? questo il dilemma !
« Risposta #1 il: 07 Gennaio 2012, 13:04:32 CET »
0
Nessuno può darmi una mano ?

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:listActivity con listAdapter o Activity con listView ? questo il dilemma !
« Risposta #2 il: 07 Gennaio 2012, 13:13:31 CET »
0
Ti consiglio di guardarti l'esempio che riguarda la ListView tra gli Hello Views della documentazione ufficiale:
List View | Android Developers
Postate il LogCat LogCat LogCat LogCat LogCat

Offline ldc

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows XP
Re:listActivity con listAdapter o Activity con listView ? questo il dilemma !
« Risposta #3 il: 07 Gennaio 2012, 19:52:31 CET »
0
ho visto.

Facendo così va bene. Ma come faccio a chiamare l'activity corrispondente all'item (primo, secondo, ecc.) della listview che si è clickato ?

Codice (Java): [Seleziona]
public class TheBestActivity extends Activity
{
       
        ListView lv;

        @Override
    public void onCreate(Bundle savedInstanceState)
        {      
                super.onCreate(savedInstanceState);
                   
        super.setContentView(R.layout.main);
       
        lv = (ListView) findViewById (R.id.lv);
       
        ListAdapter la = new ArrayAdapter<String>(this, R.id.textView,
                        new String[] {
                        "primo",
                        "secondo",
                        "dgfgdf"}
        );
       
        lv.setOnCreateContextMenuListener(this);
               
        lv.setAdapter(la);
        }


con il listAdapter si faceva :

Codice (Java): [Seleziona]
protected void onListItemClick(ListView l, View v, int position, long id)
        {
                Intent intent = new Intent(this, Prima.class);
                String var = getListAdapter().getItem(position).toString();
                intent.putExtra("film", var);
                //Log.i(ACTIVITY_SERVICE, var);
                startActivity(intent);
        }

ma adesso che ho un'activity con listView ?


Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:listActivity con listAdapter o Activity con listView ? questo il dilemma !
« Risposta #4 il: 07 Gennaio 2012, 20:06:47 CET »
0
Nel link che ti ho postato c'é scritto chiaramente come farlo:
Codice (Java): [Seleziona]
lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
      // When clicked, show a toast with the TextView text
      Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
          Toast.LENGTH_SHORT).show();
    }
  });
Postate il LogCat LogCat LogCat LogCat LogCat

Offline ldc

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows XP
Re:listActivity con listAdapter o Activity con listView ? questo il dilemma !
« Risposta #5 il: 08 Gennaio 2012, 16:05:23 CET »
0
non funzionava blackgin.

Cmq cari ragazzi, ho risolto. Vi posto il pezzo di codice che mancava :

Codice (Java): [Seleziona]
lv.setOnItemClickListener(new AdapterView.OnItemClickListener()
        {
          @Override
          public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3)
          {
            Intent intent = new Intent(getApplicationContext(), Prima.class);
                String var = lv.getItemAtPosition(position).toString();
                intent.putExtra("film", var);
                startActivity(intent);
          }
        });

così funziona l'Activity alla grande e mi passa anche i parametri come se fosse un listactivity !!!

grazie cmq per i contributi.

Alla prossima.