Autore Topic: passare il valore di una variabile string ad un'altra classe.  (Letto 1431 volte)

Offline pdinox

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • paoletto987
    • pdinox
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4
  • Play Store ID:
    Paolo Di Nocera
  • Sistema operativo:
    windows 8 and Maveriks
passare il valore di una variabile string ad un'altra classe.
« il: 24 Aprile 2013, 23:58:41 CEST »
0
Ragazzi vi spiego il problema: Ho una variabile da passare da una classe ad un'altra. La variabile la riesco a passare senza errori del compilatore, ma il valore no. Mi restituisce, quando vado ad eseguire il programma come valore della variabile NULL. In pratica la passa, ma non si porta dietro i caratteri memorizzati in essa nella classe "madre"...Come posso fare? Vi posto prima la classe "madre" e poi la classe nella quale vorrei ricevere il valore.

Codice (Java): [Seleziona]
package com.pdinox.visure;



import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.content.Intent;
import android.widget.RadioGroup;

import com.pdinox.visure.ElaboratiElaboratoPlanimetricoActivity;



public class ElaboratiPersonaFisicaFatturazioneActivity extends Activity  {
       
        //dichiaro la mia variabile
        public static String codice_test;
       
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_fatturazione_personafisica);
                Button send = (Button) findViewById(R.id.send_mail);
                final EditText nome = (EditText) findViewById(R.id.edit_nome_persona_fisica);
                final EditText cogn = (EditText) findViewById(R.id.edit_cognome_persona_fisica);
                final EditText inre = (EditText) findViewById(R.id.edit_indirizzo_residenza_personafisica);
                final EditText nuci = (EditText) findViewById(R.id.edit_numero_civico_personafisica);
                final EditText comu = (EditText) findViewById(R.id.edit_comune_personafisica);
                final EditText cap = (EditText) findViewById(R.id.edit_cap_personafisica);
                final EditText prov = (EditText) findViewById(R.id.edit_provincia_personafisica);
                final EditText cofi = (EditText) findViewById(R.id.edit_codice_fiscale_personafisica);
               
               
               
                //mando la mail
                send.setOnClickListener (new View.OnClickListener() {

                        public void onClick(View v) {          
                        String nome_ = nome.getText().toString();
                        String cogn_ = cogn.getText().toString();
                        String inre_ = inre.getText().toString();
                        String nuci_ = nuci.getText().toString();
                        String comu_ = comu.getText().toString();
                        String cap_ = cap.getText().toString();
                        String prov_ = prov.getText().toString();
                        String cofi_ = cofi.getText().toString();
                       
                       
                       
                        //assegno il valore della variabile che m'interessa
                        codice_test = "DATI FATTURAZIONE"+"\nnome:"+nome_+"\ncognome:"+cogn_+"\nindirizzo residenza:"+inre_+"\nnumero civico:"+nuci_+"\ncomune:"+comu_+"\ncap:"+cap_+"\nprovincia:"+prov_+"\ncodice fiscale/P.IVA:"+cofi_;
                       
                        Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); //This is the email intent
                        emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,new String[]{"catastosmart@gmail.com"}); // adds the address to the intent
                        emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "fatturazione privato");//the subject
                        emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,codice_test);
                        emailIntent.setType("plain/text");

                        startActivity(emailIntent);

                        }
                                });

               
               
                 
               
               
        }
}


Codice (Java): [Seleziona]
package com.pdinox.visure;


import com.pdinox.visure.R;
import com.pdinox.visure.InAppBillingController.InAppBillingListener;

import com.pdinox.visure.ElaboratiPersonaFisicaFatturazioneActivity;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.content.Intent;
import android.widget.RadioGroup;





public class ElaboratiPlanimetrieCatastaliPrivatoActivity extends Activity implements InAppBillingListener {
       
        public String radioButtonSelected;
        //passo la variabile della classe ElaboratiPersonaFisicaFatturazioneActivity.
        String codice_test;
       
       
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_elaborati_planimetrie_catastali_privato);
                Button send = (Button) findViewById(R.id.send_mail);
                final EditText cogn = (EditText) findViewById(R.id.edit_cognome);
                final EditText nome = (EditText) findViewById(R.id.edit_nome);
                final EditText cofi = (EditText) findViewById(R.id.edit_codice_fiscale);
                final EditText prov = (EditText) findViewById(R.id.edit_provincia_2);
                final EditText comu = (EditText) findViewById(R.id.edit_comune_2);
                final EditText fogl = (EditText) findViewById(R.id.edit_foglio_2);
                final EditText part = (EditText) findViewById(R.id.edit_particella_2);
                final EditText suba = (EditText) findViewById(R.id.edit_subalterno_2);
               
               
                InAppBillingController.init(this);

                Button buttonTest = (Button) findViewById(R.id.pagamento_5);
                buttonTest.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View arg0) {
                                InAppBillingController.showPurchaseDialog();

                        }
                });
               
               
                //mando la mail
                send.setOnClickListener (new View.OnClickListener() {

                        public void onClick(View v) {          
                        String cogn_ = cogn.getText().toString();
                        String nome_ = nome.getText().toString();
                        String cofi_ = cofi.getText().toString();
                        String prov_ = prov.getText().toString();
                        String comu_ = comu.getText().toString();
                        String fogl_ = fogl.getText().toString();
                        String part_ = part.getText().toString();
                        String suba_ = suba.getText().toString();
                       
                        RadioGroup radioGroup = (RadioGroup) findViewById(R.id.edit_rb_elaborati_planimetrie_catastali_privato);
                       
                       
                        int checkedRadioButton = radioGroup.getCheckedRadioButtonId();
                         
                        radioButtonSelected = "";
                         
                        switch (checkedRadioButton) {
                          case R.id.edit_elaborati_planimetrie_catastali_privato_a3 : radioButtonSelected = "A3";
                                                              break;
                          case R.id.edit_elaborati_planimetrie_catastali_privato_a4 : radioButtonSelected = "A4";
                                                              break;
                         
                        }

                       
                        //la variabile la uso qui, ma mi restituisce il valore NULL.
                        String codice = "DATI PERSONALI"+"\ncognome:"+cogn_+"\nnome:"+nome_+"\ncodice fiscale:"+cofi_+"\nDATI IMMOBILE"+"\nprovincia:"+prov_+"\ncomune:"+comu_+"\nfoglio:"+fogl_+"\nparticella:"+part_+"\nsubalterno:"+suba_+"\nformato stampa:"+radioButtonSelected+"\n"+codice_test;
                       
                       
                        Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); //This is the email intent
                        emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,new String[]{"catastosmart@gmail.com"}); // adds the address to the intent
                        emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "planimetrie catastali privato");//the subject
                        emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,codice);
                        emailIntent.setType("plain/text");

                        //emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, body); //adds the body of the mail

                        startActivity(emailIntent);

                        }
                                });

               
               
                 
               
               
        }

        @Override
        protected void onDestroy() {
                InAppBillingController.stop();
                super.onDestroy();
        }

        @Override
        protected void onPause() {
                InAppBillingController.dismissPurchaseDialog();
                super.onPause();
        }

        @Override
        public void onHasPurchased(boolean donate) {
                // Aggiungere qui il codice di gestione per la vostra applicazione
                if (donate)
                        Toast.makeText(this, "Purchase ok", Toast.LENGTH_LONG).show();
                else
                        Toast.makeText(this, "No purchase", Toast.LENGTH_LONG).show();

        }
       
}
Pdinox

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:passare il valore di una variabile string ad un'altra classe.
« Risposta #1 il: 25 Aprile 2013, 08:52:59 CEST »
0
Ma dei due sorgenti che hai postato, qual'è il punto incriminato?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline pdinox

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • paoletto987
    • pdinox
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4
  • Play Store ID:
    Paolo Di Nocera
  • Sistema operativo:
    windows 8 and Maveriks
Re:passare il valore di una variabile string ad un\'altra classe.
« Risposta #2 il: 25 Aprile 2013, 11:44:03 CEST »
0
La variabile incriminata è commentata!;);)

Post unito: 25 Aprile 2013, 11:48:13 CEST
Sarebbe la variabile codice_test...;)
« Ultima modifica: 25 Aprile 2013, 11:48:13 CEST da pdinox, Reason: Merged DoublePost »
Pdinox

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:passare il valore di una variabile string ad un'altra classe.
« Risposta #3 il: 25 Aprile 2013, 12:10:49 CEST »
0
Codice (Java): [Seleziona]
//passo la variabile della classe ElaboratiPersonaFisicaFatturazioneActivity.
        String codice_test;
Questo non significa passare la variabile. Con questa riga di codice dichiari un membro della seconda Activity che non c'entra niente con quello della prima.
La variabile la stai passando tramite intent, e tramite intent la devi recuperare.
Qua é spiegato come si fa correttamente: [facile] Passaggio di dati tra un'activity ed un'altra - Android Developers Italia
Postate il LogCat LogCat LogCat LogCat LogCat

Offline pdinox

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • paoletto987
    • pdinox
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4
  • Play Store ID:
    Paolo Di Nocera
  • Sistema operativo:
    windows 8 and Maveriks
Re:passare il valore di una variabile string ad un'altra classe.
« Risposta #4 il: 25 Aprile 2013, 12:24:48 CEST »
0
allora la variabile me la passa pure il problema è che nella prima classe che ti ho postato non riesco a far uscire il valore che gli assegno nel metodo. Se assegno alla variabile nella prima classe per esempio il valore "PROVA" in questa maniera:
Codice (Java): [Seleziona]
public static String codice_test="prova";Lo prende e me lo fa leggere nella seconda classe.... :(
Pdinox

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:passare il valore di una variabile string ad un'altra classe.
« Risposta #5 il: 25 Aprile 2013, 13:00:35 CEST »
0
La variabile NON é passata per come hai fatto tu.
O meglio, é passata, ma non é quella che tu nella seconda classe chiami codice_test.
codice_test dell'activity 1 e codice_test dell'activity 2, dato che appartengono a due classi diverse, sono due variabili diverse. Il fatto che tu le chiami allo stesso modo non cambia la situazione.
Qua stiamo parlando di basi java. Variable Scope
Detto ciò, ripeto, il tutorial su come passare i dati tra activity é sempre lo stesso e funziona: usa quello.
Postate il LogCat LogCat LogCat LogCat LogCat