Autore Topic: è possibile passare con un Intent un KvmSerializible  (Letto 694 volte)

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
è possibile passare con un Intent un KvmSerializible
« il: 02 Giugno 2011, 10:07:28 CEST »
0
Ho bisogno di passare tra un activity e l'altra un'oggetto BusinessInfo che è implementato con KvmSerializible,purtroppo non posso implementarlo con Serializible perchè siccome effettuo una chiamata ad un ws tramite ksoap se lo implemento con kvmSerializible la richiesta va a buon fine,se con Serializible mi da errore,come posso aggirare il problema?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:è possibile passare con un Intent un KvmSerializible
« Risposta #1 il: 02 Giugno 2011, 10:51:55 CEST »
0
Una classe può implementare più di una interfaccia, quindi volendo puoi implementargli anche Serializable o Parcelable

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:è possibile passare con un Intent un KvmSerializible
« Risposta #2 il: 02 Giugno 2011, 10:57:28 CEST »
0
Una classe può implementare più di una interfaccia, quindi volendo puoi implementargli anche Serializable o Parcelable

Il problema è che uso la libreria ksoap per effettuare l'interrogazione,ad un certo punto nel codice viene creato un oggetto SoapObject che implementa KvmSerializible,quindi se io passo un Serializible va in crash,allora ho scritto un 'interfaccia Serializible ed ora vorrei aggiungerla alla libreria di ksoap e cambiare il SoapObject in modo tale che implementi Serializible,il problema è che non so come fare..So che non fa parte di questa sezione,ma sapresti come fare?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:è possibile passare con un Intent un KvmSerializible
« Risposta #3 il: 02 Giugno 2011, 11:00:34 CEST »
0
Ma quella classe l'hai dichiarata tu oppure è dichiarata internamente in kSOAP?

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:è possibile passare con un Intent un KvmSerializible
« Risposta #4 il: 02 Giugno 2011, 11:04:59 CEST »
0
Ma quella classe l'hai dichiarata tu oppure è dichiarata internamente in kSOAP?

La classe KvmSerializible è già implementata in ksoap e di conseguenza anche il SoapObject implementa KvmSerializible.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:è possibile passare con un Intent un KvmSerializible
« Risposta #5 il: 02 Giugno 2011, 11:07:07 CEST »
0
La classe che devi passare è dichiarata internamente o da te?

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:è possibile passare con un Intent un KvmSerializible
« Risposta #6 il: 02 Giugno 2011, 11:12:06 CEST »
0
La classe che devi passare è dichiarata internamente o da te?

La classe da passare l'ho scritta io,ed è questa:
Codice (Java): [Seleziona]
import java.util.Hashtable;

import org.ksoap2.serialization.KvmSerializable;
import org.ksoap2.serialization.PropertyInfo;

public class BusinessInfo implements KvmSerializable  {
       
        private String codice;
        private String login;
        private String password;
       
        public BusinessInfo(String cod,String log,String pass)
        {
                codice = cod;
                login = log;
                password = pass;
        }
        public String getCodice()
        {
                return codice;
        }
       
        public void setCodice(String c)
        {
           codice = c; 
        }
       
        public String getPassword()
        {
                return password;
        }
       
        public void setPassword(String p)
        {
           password = p;       
        }
       
        public String getLogin()
        {
                return login;
        }
       
        public void setLogin(String l)
        {
           login = l;  
        }
       
          public Object getProperty(int arg0) {
               
                switch(arg0)
                {
                case 0:
                    return codice;
                case 1:
                    return login;
                case 2:
                    return password;
                }
               
                return null;
            }

            public int getPropertyCount() {
                return 3;
            }

            public void getPropertyInfo(int index, Hashtable arg1, PropertyInfo info) {
                switch(index)
                {
                case 0:
                    info.type = PropertyInfo.STRING_CLASS;
                    info.name = "Codice";
                    break;
                case 1:
                    info.type = PropertyInfo.STRING_CLASS;
                    info.name = "Login";
                    break;
                case 2:
                    info.type = PropertyInfo.STRING_CLASS;
                    info.name = "Password";
                    break;
                default:break;
                }
            }

            public void setProperty(int index, Object value) {
                switch(index)
                {
                case 0:
                    codice = value.toString();
                    break;
                case 1:
                    login = value.toString();
                    break;
                case 2:
                    password = value.toString();
                    break;
                default:
                    break;
                }
            }
       

}

Questa e la parte di codice in cui la richiamo:
Codice (Java): [Seleziona]
   SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
       
                           String codice = Codice.getText().toString();
                           String login = Login.getText().toString();
                           String password = Password.getText().toString();
                           Log.i("Dati inseriti","A video" + codice.toString() + login.toString() + password.toString());
                           BusinessInfo bussInfo = new BusinessInfo(codice,login,password);
                           Log.i("business","business " + bussInfo.getCodice() + bussInfo.getLogin() + bussInfo.getPassword() );
                           
                           request.addProperty("bussInfo", bussInfo);

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:è possibile passare con un Intent un KvmSerializible
« Risposta #7 il: 02 Giugno 2011, 11:14:19 CEST »
+1
Codice (Java): [Seleziona]
public class BusinessInfo implements KvmSerializable, Serializable {

Offline dom4

  • Utente normale
  • ***
  • Post: 158
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Vodafone Ideos, Nexus 5
Re:è possibile passare con un Intent un KvmSerializible
« Risposta #8 il: 02 Giugno 2011, 11:19:40 CEST »
0
Codice (Java): [Seleziona]
public class BusinessInfo implements KvmSerializable, Serializable {

Grazie mille,mi hai salvato.