Autore Topic: accedere ai dati dopo il passaggio con Parcelable  (Letto 657 volte)

Offline jocker99

  • Nuovo arrivato
  • *
  • Post: 39
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy mini 2
  • Sistema operativo:
    debian 6 - 64 bit
accedere ai dati dopo il passaggio con Parcelable
« il: 19 Ottobre 2011, 22:22:38 CEST »
0
salve ragazzi ho fatto questo semplice test di passaggio dati tra due activity ora il mio problema e che nella seconda activity, a cui  vengono passati i dati, non so' come accedere a i dati passati il codice e' questo:



Codice (Java): [Seleziona]
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Testesempio2Activity extends Activity {
    /** Called when the activity is first created. */
 
    @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        Button create2ActivityButton = (Button) findViewById(R.id.button1);
       
        create2ActivityButton.setOnClickListener(new OnClickListener() {
               
                public void onClick(View arg0) {
                       
                          Intent intent=new Intent(getApplicationContext(), seconda.class);  
                        startActivity(intent);
                    intent.putExtra("Persona", new Person("1","Antonio","Bianchi")); // gli passo i dati
                }
        }
      );
   
    }

seconda activity
Codice (Java): [Seleziona]
package it.testesempio2;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class seconda extends Testesempio2Activity {
        private final static String ACTIVITY_TAG2 = "activity2";
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);    
                setContentView(R.layout.act2);
String nom,cogn;
final TextView nomeText=(TextView)findViewById(R.id.textView1);
final TextView cognomeText=(TextView)findViewById(R.id.textView2);
Bundle data = getIntent().getExtras();
Person student = data.getParcelable("Persona");

// come faccio ad accedere ai dati che gli sono stati passati?

}
}

ora la classe Parcelable:
Codice (Java): [Seleziona]
package it.testesempio2;
import android.os.Parcel;
import android.os.Parcelable;


public class Person implements Parcelable {
         private String id;
         private String nome;
         private String cognome;          // questi sono i dati
       
//metodo generato in automatico,
        @Override
        public int describeContents() {
                // TODO Auto-generated method stub
                return 0;
        }
       

          public static final Parcelable.Creator<Person>
          CREATOR= new Parcelable.Creator<Person>() {
  public Person createFromParcel(Parcel in) {
      return new Person(in);
  }
  public Person[] newArray(int size) {
      return new Person[size];
  }
};     
       
//costruttore classe
public Person(String id, String name, String grade){
                   this.id = id;
                   this.nome = name;
                   this.cognome = grade;

        } // fine costruttore


     public Person(Parcel in){
         String[] data = new String[3];
 
         in.readStringArray(data);
         this.id = data[0];
         this.nome = data[1];
         this.cognome = data[2];
     }
public void writeToParcel(Parcel out, int flags) {
                out.writeStringArray(new String[] {
                                        this.id,
                                    this.nome,
                                     this.cognome});
 }

}

grazie per l'aiuto

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:accedere ai dati dopo il passaggio con Parcelable
« Risposta #1 il: 20 Ottobre 2011, 00:08:40 CEST »
0
Creando dei metodi getter per la tua clase persona?  o_O

Offline jocker99

  • Nuovo arrivato
  • *
  • Post: 39
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy mini 2
  • Sistema operativo:
    debian 6 - 64 bit
Re:accedere ai dati dopo il passaggio con Parcelable
« Risposta #2 il: 20 Ottobre 2011, 10:58:29 CEST »
0
esatto che stupido!!!!
thx

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:accedere ai dati dopo il passaggio con Parcelable
« Risposta #3 il: 20 Ottobre 2011, 12:10:15 CEST »
0
Scusate ma vorrei capire una cosa, premetto che non ho mai usato i parcellable.
Ma la stessa soluzione potrebbe essere:

1)Creo activity n°1, istanzio la classe persona e ne popolo le proprietà.
2)dalla prima activity passo l'stanza di Persona alla seconda activity
3)Dalla seconda activity prendo l'oggetto passato dalla prima activity ed ci accedo alla varie proprietà
Ma allora cosa mi serve parcellable ? forse perchè tra activity non si possono passare oggetti ?
Grazie
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .