Autore Topic: Passaggio di parametri  (Letto 486 volte)

Offline lavatrice

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung s3
  • Sistema operativo:
    Ubuntu 14.2
Passaggio di parametri
« il: 06 Settembre 2015, 13:19:43 CEST »
0
Salve a tutti sono un neofita di programmazione android ed ho un problema relativo al passaggio di parametri tra due activity.
di seguito il codice dell'activity principale e activity secondaria.
In sostanza all'apertura della seconda activity mi appare "NULL", sinceramente non riesco a capire dov'è il problema.
chi di voi può aiutarmi ???
Grazie mille......

activity principale:
Package com.example.nicola.consumo_carburante;

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;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button btnseconda = (Button) findViewById(R.id.btnConsumo);
        btnseconda.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int km, litri;
                EditText temp1 = (EditText) findViewById(R.id.editKM);
                km = Integer.parseInt(temp1.getText().toString());

                EditText temp2 = (EditText) findViewById(R.id.editLitri);
                litri = Integer.parseInt(temp2.getText().toString());

                int consumo = km/litri;
                Log.d("corso","  " + consumo);

                Intent invio = new Intent(MainActivity.this, ConsumoActivity.class);

                invio.putExtra("PARAMETRO", consumo);
                Log.d("corso"," ------  "+consumo);
                startActivity(invio);
            }
        });
    }
}

activity secondaria:

package com.example.nicola.consumo_carburante;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class ConsumoActivity extends Activity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_consumo);

        String PARAMETRO = getIntent().getExtras().getString("PARAMETRO");

        Log.d("corso", "dato passato  " + PARAMETRO);

        TextView fine = (TextView) findViewById(R.id.txtConsumo);
        fine.setText("" + PARAMETRO);

    }
}

Offline tonno16

  • Utente storico
  • *****
  • Post: 1169
  • Respect: +56
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Passaggio di parametri
« Risposta #1 il: 06 Settembre 2015, 13:55:31 CEST »
0
Il log di consumo quanto ti da?

Offline lavatrice

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung s3
  • Sistema operativo:
    Ubuntu 14.2
Re:Passaggio di parametri
« Risposta #2 il: 06 Settembre 2015, 14:51:28 CEST »
0
Se intendi il logcat il risultato è questo:
09-06 14:47:17.365  20212-20212/com.example.nicola.consumo_carburante D/corso﹕ 11
09-06 14:47:17.380  20212-20212/com.example.nicola.consumo_carburante D/corso﹕ ------  11
09-06 14:47:17.825  20212-20212/com.example.nicola.consumo_carburante D/corso﹕ dato passato  null

Offline tonno16

  • Utente storico
  • *****
  • Post: 1169
  • Respect: +56
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Passaggio di parametri
« Risposta #3 il: 06 Settembre 2015, 14:52:57 CEST »
0
Sbagli codice.

Il codice è: getIntent().getStringExtra

Offline pietroconti89

  • Utente normale
  • ***
  • Post: 164
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note 3 N9005
  • Sistema operativo:
    Windows / Mac OSX
Re:Passaggio di parametri
« Risposta #4 il: 06 Settembre 2015, 14:58:48 CEST »
0
vedo che passi un int e poi ricevi una String , non è poi correttissima sta cosa , e ancora prima metti in un int una divisione , sarebbe più corretto usare un double tranne che tu non voglia arrotondare sempre per difetto la divisione ...

Offline lavatrice

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung s3
  • Sistema operativo:
    Ubuntu 14.2
Re:Passaggio di parametri
« Risposta #5 il: 06 Settembre 2015, 15:02:33 CEST »
0
ho modificato il secondo activity in questo modo:
String PARAMETRO = getIntent().getStringExtra("PARAMETRO");

però ottengo lo stesso risultato.

Offline pietroconti89

  • Utente normale
  • ***
  • Post: 164
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note 3 N9005
  • Sistema operativo:
    Windows / Mac OSX
Re:Passaggio di parametri
« Risposta #6 il: 06 Settembre 2015, 15:06:54 CEST »
0
prova sostituendo
Codice (Java): [Seleziona]
getIntent().getExtras().getStringExtra("PARAMETRO");con
Codice (Java): [Seleziona]
String.valueOf(  getIntent().getIntExtra("PARAMETRO")  );

Offline lavatrice

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung s3
  • Sistema operativo:
    Ubuntu 14.2
Re:Passaggio di parametri
« Risposta #7 il: 06 Settembre 2015, 15:10:41 CEST »
0
E' su questa riga che sbaglio??

String PARAMETRO = getIntent().getExtras().getString("PARAMETRO");

si, in effetti invio un int e poi setto il tutto per ricevere una String.
ma come dovrebbe diventare ???

Offline pietroconti89

  • Utente normale
  • ***
  • Post: 164
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note 3 N9005
  • Sistema operativo:
    Windows / Mac OSX
Re:Passaggio di parametri
« Risposta #8 il: 06 Settembre 2015, 15:11:40 CEST »
0
sostituisci come ti ho detto
cosi facendo passi un int
ricevi un int che poi viene convertito in String  ;-)

Offline lavatrice

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung s3
  • Sistema operativo:
    Ubuntu 14.2
Re:Passaggio di parametri
« Risposta #9 il: 06 Settembre 2015, 15:15:38 CEST »
0
ho provato a cambiare come mi hai detto però la scritta PARAMETRO mi viene evidenziata in rosso.
devo modificare altro????
String PARAMETRO = String.valueOf(getIntent().getIntExtra("PARAMETRO"));

Offline pietroconti89

  • Utente normale
  • ***
  • Post: 164
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note 3 N9005
  • Sistema operativo:
    Windows / Mac OSX
Re:Passaggio di parametri
« Risposta #10 il: 06 Settembre 2015, 15:18:24 CEST »
0
si scusa
Codice (Java): [Seleziona]
String.valueOf(  getIntent().getIntExtra("PARAMETRO",-1)  );
dove -1 è un parametro di default

Offline lavatrice

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung s3
  • Sistema operativo:
    Ubuntu 14.2
Re:Passaggio di parametri
« Risposta #11 il: 06 Settembre 2015, 15:23:10 CEST »
0
Problema risolto.
GRAZIE MILLE !!!!!!!

BRAVO !!!!!!!

Offline pietroconti89

  • Utente normale
  • ***
  • Post: 164
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note 3 N9005
  • Sistema operativo:
    Windows / Mac OSX
Re:Passaggio di parametri
« Risposta #12 il: 06 Settembre 2015, 15:24:55 CEST »
0
 ;-), valuta il discorso della divisione perchè cosi come fai adesso se fai 4 / 2 ti stampa 2 se invece fai 5/2 ti stampa sempre 2 invece che 2,5 ok ?

Offline xixietto

Re:Passaggio di parametri
« Risposta #13 il: 10 Settembre 2015, 00:37:01 CEST »
0
Nel log cosa ottieni?

Fabrizio