Autore Topic: Problema con listener per ListView per far comunicare due activity  (Letto 951 volte)

Offline Carontes

  • Nuovo arrivato
  • *
  • Post: 40
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos u8150
Ho un problema con due activity, principalmente, ed un layout, secondariamente. Ho un ExpandableList e quando clicco su un child posso vedere le informazioni relative a quel child in un nuovo layout. Ho aggiunto anche un'activity di ricerca all'interno dell'applicazione (contiene uno spinner ed una listview), ma se io clicco su un elemento della ListView vedo lo stesso layout che mi visualizza il child, ma senza le informazioni su ciò che ho cliccato (vedo solo le scritte TextView e come immagine l'icona dell'applicazione). Mi è stato detto di cambiare il listener della ListView in modo da poter inserire intent.putExtra() nell'intent, li ho provati tutti ma ancora non funziona come dovrebbe. Qualcuno mi potrebbe aiutare? Grazie mille.

Activity di Dettaglio:

Codice (Java): [Seleziona]
package it.caronte.bar;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.ImageView;
import android.widget.TextView;

public class Details extends Activity
{
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.last_layout);

        final Intent intent = getIntent();
        if (intent.hasExtra("selectedChild"))
        {
            final Child selectedChild = (Child) intent.getSerializableExtra("selectedChild");
            if (selectedChild != null)
            {
                ((TextView) findViewById(R.id.Title)).setText(selectedChild.getName());
                ((ImageView) findViewById(R.id.imageView1)).setImageResource(getResources().getIdentifier(selectedChild.getImage(),"drawable", "it.caronte.bar"));
            }
        }
    }


Listener sulla ListView con intent:


Codice (Java): [Seleziona]
package it.caronte.bar;


import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.AdapterView.OnItemSelectedListener;


public class Search extends Activity{

    private ListView list;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.search);

        list = (ListView) findViewById(R.id.listView1);
        aggiornaItem(Names.TUTTI_I_NOMI);
        aggiornaName(Names.TUTTI_I_NOMI);
       
        list.setClickable(true);
        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {  
               public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {  
                       
                   Intent intent  = new Intent(Search.this,Details.class);
                   startActivity(intent);
                    }
                  });  

Offline AndroidLab

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • http://it.linkedin.com/in/sandrotroncone
    • Mostra profilo
    • AndroidLab
Re:Problema con listener per ListView per far comunicare due activity
« Risposta #1 il: 18 Luglio 2011, 10:49:57 CEST »
0
L'intent parte e il sistema entra nella if dove fai il check hasExtra ? Usa la modalità debug.
Entra nell'AndroidLab!

Offline Carontes

  • Nuovo arrivato
  • *
  • Post: 40
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos u8150
Re:Problema con listener per ListView per far comunicare due activity
« Risposta #2 il: 18 Luglio 2011, 14:05:27 CEST »
0
L'activity di dettaglio funziona bene, l'errore si trova nell'activity contenente la ListView. Quello che serve per farlo funzionare è modificare o aggiungere parti al listener della ListView. Ora come ora se clicco su un item della ListView viene visualizzato il layout con solo scritte TextView; mentre, se faccio partire l'activity di Dettaglio da un'altra activity, il layout viene visualizzato come dovrebbe.