Autore Topic: Get e Put Extra  (Letto 2287 volte)

Offline tonyontravel

  • Nuovo arrivato
  • *
  • Post: 36
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxi Next
  • Sistema operativo:
    Windows XP
Get e Put Extra
« il: 09 Febbraio 2012, 17:21:21 CET »
0
Sto impazzendo e vi espongo il problema.

Ho diverse Activity che si richiamano l'una con l'altra, tra di loro per conservare il passaggio di un paio di dati ho inserito get e put extra.

Ora tutti questi passaggi sembrano funzionare ad eccezione di uno che funziona parzialmente, nel senso che dei due parametri che gli passo uno lo prende e l'altro no.

Provo a postarvi le parti di codice interessate:

Parte del codice della prima Activity che lancia la seguente

Codice (Java): [Seleziona]
                int bucaCorr=1;
                intentBuca = new Intent(getApplicationContext(), callBuca.class);
                pkg=getPackageName();
                intentBuca.putExtra(pkg+".myInt", bucaCorr);
                intentBuca.putExtra(pkg+".myFormula", formulaGara);
               
                startActivity(intentBuca);

Activity intermedia

Codice (Java): [Seleziona]
package it.nextgolf.rts;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

public class callBuca extends Activity {
        Intent intentBuca;
        int bucaCorr;
        String formulaGara;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);

                Intent intent = getIntent();
                String pkg = getPackageName();
                bucaCorr = intent.getIntExtra(pkg + ".myInt", -1);
                formulaGara = intent.getStringExtra(pkg + ".myFormula");

                Log.i("Call Formula", formulaGara);

                intentBuca = new Intent(getApplicationContext(), risBuca.class);
                pkg = getPackageName();
                intentBuca.putExtra(pkg + ".myInt", bucaCorr);
                intentBuca.putExtra(pkg + ".myFormula", formulaGara);

                Log.i("Call Formula 1", formulaGara);

                startActivity(intentBuca);

        }

        @Override
        protected void onResume() {
                super.onResume();
                String pkg = getPackageName();
                intentBuca = new Intent(getApplicationContext(), risBuca.class);
                pkg = getPackageName();
                intentBuca.putExtra(pkg + ".myInt", bucaCorr);

                startActivity(intentBuca);

        }
}

I Log.i mi confermano che prima del lancio dell'Activity successiva la variabile che mi interessa passare è valorizzata

Ed ecco il codice  dell'Activity che mi sta creando problemi (solo la parte iniziale)

Delle due variabili trattate con gli Extra:
bucaCorr contiene il valore corretto
formulaGara invece mi ritorna sempre null
(controllato con il Log)
Codice (Java): [Seleziona]
package it.nextgolf.rts;

// import android.app.Activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;

public class risBuca extends Activity {

        String[] datiPercorso = new String[40];
        String[] datiPlayer = new String[61];
        Button bConf, bScore;
        ImageButton bPrec, bSucc;
        Button bBg1P, bBg1M, bBg2P, bBg2M, bBg3P, bBg3M, bBg4P, bBg4M;
        int bucaCorr, colpi_buca, punti_buca, hcpgio, hcpgio1, hcpgio2, hcpgio3,
                        hcpgio4, parbuca, hcpbuca, supar_buca;
        final Calcoli calc = new Calcoli();
        EditText tvGiC1, tvGiC2, tvGiC3, tvGiC4;
        TextView tvGiP1, tvGiP2, tvGiP3, tvGiP4;
        String formulaGara;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                setContentView(R.layout.buca);

                Intent intent = getIntent();
                String pkg = getPackageName();
                bucaCorr = intent.getIntExtra(pkg + ".myInt", -1);
                formulaGara = intent.getStringExtra(pkg + ".myFormula");
                Log.i("Ris Buca", "Formula"+formulaGara);
                TextView tvFormGio = (TextView) findViewById(R.id.tvFormula);
                if (formulaGara == "S") {
                                tvFormGio.setText("STB");
                }else {
                        tvFormGio.setText("MED");
                }

qualche idea?

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:Get e Put Extra
« Risposta #1 il: 10 Febbraio 2012, 12:51:46 CET »
0
A prima vista mi sembra che vada tutto bene. Stai cercando di passare una stringa tra due activity. Cosa che ho sempre fatto così:
Codice (Java): [Seleziona]
//Passaggio dei parametri tra Activity
                        Intent intent = new Intent(getApplicationContext(), Activity.class);
                        pkg = getPackageName();
                        intent.putExtra(pkg + ".nome_variabile", nome_variabile);
                        Log.i("NOMEAPP", "valore: "+nome_variabile);
                        startActivity(intent);

//Altra activity
if (this.getIntent().getExtras() != null){
                        String valore = this.getIntent().getExtras().get("nome_variabile").toString();
                        editText.setText(valore);
                        System.out.println("valore: "+ valore);
                }
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

Offline tonyontravel

  • Nuovo arrivato
  • *
  • Post: 36
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxi Next
  • Sistema operativo:
    Windows XP
Re:Get e Put Extra
« Risposta #2 il: 11 Febbraio 2012, 11:56:16 CET »
0
Ho trovato il problema, avevo implementato tutti i passaggi meno l'onResume che passava ancora solo un parametro.

Ora funziona tutto.
Codice (Java): [Seleziona]
        @Override
        protected void onResume() {
                super.onResume();
                String pkg = getPackageName();
                intentBuca = new Intent(getApplicationContext(), risBuca.class);
                pkg = getPackageName();
                intentBuca.putExtra(pkg + ".myInt", bucaCorr);

\\ Mancava questa riga
                intentBuca.putExtra(pkg+".myFormula", formulaGara);
\\-----------
                startActivity(intentBuca);

        }
}