Autore Topic: Errore nel passaggio di stringa tra activity  (Letto 526 volte)

Offline mangusto

  • Utente normale
  • ***
  • Post: 152
  • Respect: +5
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    ZTE Blade
  • Play Store ID:
    Leonardo Preti
  • Sistema operativo:
    Windows 7
Errore nel passaggio di stringa tra activity
« il: 12 Aprile 2011, 12:28:22 CEST »
0
Nel mio progetto ho un ArrayList che contiene diverse stringhe (costruito seguendo questo tutorial -> http://www.anddev.it/index.php/topic,413.0.html); successivamente voglio passare una delle informazioni contenute nelle stringhe ad un'altra activity ma qui sorge un problema: invece di passare la stringa mi scrive FALSE, come se avesse passato un booleano.

Posto di seguito i pezzi di codice che sono interessati, tagliano alcune cose inutili:

Activity 1
Codice (Java): [Seleziona]
// Lista delle ricette
        ArrayList<Ricetta> antipastiList=new ArrayList<Ricetta>();
        antipastiList.add(new Ricetta("16","Ricottina di bufala al forno con olio alla puttanesca","Facile","20 minuti"));
ArrayList<HashMap<String,Object>> data = new ArrayList<HashMap<String,Object>>();
       
        for(int i=0;i<antipastiList.size();i++){
                Ricetta r = antipastiList.get(i);
               
                HashMap<String,Object> ricettaMap=new HashMap<String, Object>();
               
                ricettaMap.put("numero", r.getNumero());
                ricettaMap.put("titolo", r.getTitolo());
                ricettaMap.put("difficolta", r.getDifficolta());
                ricettaMap.put("tempo", r.getTempo());
                data.add(ricettaMap);
        }
       
        String[] from = {"numero", "titolo", "difficolta", "tempo"};
        int[] to = {R.id.ricettaNumero, R.id.ricettaTitolo, R.id.ricettaDifficolta, R.id.ricettaTempo};
       
        SimpleAdapter adapter=new SimpleAdapter(
                        getApplicationContext(),
                        data,
                        R.layout.list_cibo,
                        from,
                        to);
       
        ((ListView)findViewById(R.id.ciboListView)).setAdapter(adapter);

final ListView lv = (ListView) findViewById(R.id.ciboListView);
        lv.setOnItemClickListener(new OnItemClickListener() {    
            public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
                       Intent i = new Intent(arg1.getContext(),TabRicetta.class);
                       String pkg = getPackageName();
                       
                       String s = (String) getText(R.id.ricettaTitolo);
                       
                       i.putExtra(pkg+".myString", s);
                       
                       startActivity(i);
                }
Activity 2
Codice (Java): [Seleziona]
     // Recupero delle informazioni passate
        Intent i = getIntent();
        String pkg = getPackageName();
        String titolo = i.getStringExtra(pkg+".myString");

        topText = (TextView) findViewById(R.id.text_titolo);
        topText.setTypeface(fontType);
        topText.setText(titolo);
       

Se invece di passare la stringa in questo modo la passassi come stringa statica (String s = "testo"), funziona
Codice (Java): [Seleziona]
final ListView lv = (ListView) findViewById(R.id.ciboListView);
        lv.setOnItemClickListener(new OnItemClickListener() {    
            public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
                       Intent i = new Intent(arg1.getContext(),TabRicetta.class);
                       String pkg = getPackageName();
                       
                       String s = "Testo da passare alla seconda activity";
                       
                       i.putExtra(pkg+".myString", s);
                       
                       startActivity(i);
                }
Credo che il mio errore sia nel fatto che cerco di far passare un int come string, ma non ne sono sicuro e soprattutto non so come risolvere

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +203
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Errore nel passaggio di stringa tra activity
« Risposta #1 il: 12 Aprile 2011, 13:51:57 CEST »
+1
l'errore sta qui:

Codice (Java): [Seleziona]
String s = (String) getText(R.id.ricettaTitolo);prova cosi:

Codice (Java): [Seleziona]
Textview tv= (TextView)arg1.findViewById(R.id.ricettaTitolo);
String s =  tv.getText().toString();

(arg1 perche la textview interessata sta nella view cliccata)
« Ultima modifica: 12 Aprile 2011, 16:39:19 CEST da Qlimax »