Autore Topic: Come far funzionare intent.putExtra in un'activity  (Letto 777 volte)

Offline Carontes

  • Nuovo arrivato
  • *
  • Post: 40
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos u8150
Come far funzionare intent.putExtra in un'activity
« il: 28 Agosto 2011, 01:43:02 CEST »
0
Salve, sto sviluppando un'applicazione ma mi sono fermato ad un punto in cui incontro delle difficoltà. Devo far comunicare due activity tra di loro ma non ci riesco. Premendo il tasto menù compare la scritta "Search", l'activity contiene una ListView con dei nomi, se clicco su uno di quei nomi il nuovo layout non si popola con i dati presi da un file XML, mentre il layout si popola se clicco su un child della ExpandableList.

Activity Search:

Codice (Java): [Seleziona]
import java.util.ArrayList;

import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.EditText;
import android.widget.ListView;
import android.app.Activity;
import android.content.Intent;
import android.widget.ArrayAdapter;

public class Search extends Activity {
       
        private ListView lv1;
        private EditText ed;
        private String lv_arr[] = {
                        "America",
                        "Busta",
                        "Cactus",
                        "Fire",
                        "Garden",
                        "Hollywood",
                        "King",
                        "Laboratorio",
                        "Malta",
                        "Nespola",
                        "Pera",
                        "Rosa",
                        "Sapone",
                        "Verano",
        };
       
        private ArrayList<String> arr_sort= new ArrayList<String>();
        int textlength=0;
       
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.search);
               
                lv1=(ListView)findViewById(R.id.ListView1);
                ed=(EditText)findViewById(R.id.EditText1);
               
                lv1.setClickable(true);
                lv1.setOnItemClickListener(new OnItemClickListener() {  
                        public void onItemClick(AdapterView<?> parent, View view, int position, long id){

                                Intent intent = new Intent(Search.this, Details.class);
                        startActivity(intent); }
                        {
                       
                         }});

Activity Details:

Codice (Java): [Seleziona]
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
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", "com.test.com"));
        }
    }
}  


Queste sono le due activity che devono comunicare tra di loro, per capire meglio come stanno le cose inserisco anche l'intero progetto Progetto Eclipse.zip

Mi è stato detto di inserire questo codice nelle due activity

Activity Details:

Codice (Java): [Seleziona]
String name = getIntent().getStringExtra("NAME");
String image  = getIntent().getStringExtra("IMAGE");
((TextView) findViewById(R.id.Title)).setText(name);
((ImageView) findViewById(R.id.imageView1)).setImageResource(getResources().getIdentifier(image, "drawable", "com.test.com"));

Activity Search:

Codice (Java): [Seleziona]
intent.putExtra("NAME", selectedChild.getName());
intent.putExtra("IMAGE", selectedChild.getImage());
startActivity(intent);

solo che Eclipse mi segnala un errore (linea rossa sotto la parola) nei due "selectedChild" dell'activity Search ("selectedChild cannot be resolved"). Qualcuno saprebbe dirmi come poter risolvere questo problema, o se c'è un altro modo per popolare il nuovo layout? Grazie mille.