Autore Topic: Passare testo EditText da un'activity ad un'altra  (Letto 1904 volte)

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Passare testo EditText da un'activity ad un'altra
« il: 21 Dicembre 2010, 18:36:42 CET »
0
Ciao a tutti,

avrei bisogno di sapere come passare il testo presente in un EditText da un'activity ad un'altra.

Questo è il metodo per fornire all'intent un intero e una stringa da passare:
Codice (Java): [Seleziona]
intent.putExtra(pkg+".myString", s);          
intent.putExtra(pkg+".myInt", i);

questo è il metodo per intercettare l'intero e la stringa:
Codice (Java): [Seleziona]
String s=intent.getStringExtra(pkg+".myString");
int i=intent.getIntExtra(pkg+".myInt", -1);

Invece se avessi un testo di un'EditText che tipo di dato dovrei utilizzare? non credo sia ne una stringa, ed escluderei che sia un intero.

quindi le mie domande sono:
come invio il testo di un'EditText ad un'altra activity tramite intent?
come intercetto questo testo nella seconda activity?


grazie!!

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Passare testo EditText da un'activity ad un'altra
« Risposta #1 il: 21 Dicembre 2010, 18:46:16 CET »
+2

Invece se avessi un testo di un'EditText che tipo di dato dovrei utilizzare? non credo sia ne una stringa, ed escluderei che sia un intero.

Sbagliato, l'edit text contiene una stringa!
EditText | Android Developers
Edit text estende textview, quindi se fai un getText().toString() hai il testo sotto forma di stringa. Ovviamente senza spannable ecc.
Se invece vuoi il testo sotto forma piu complessa e non sotto forma di stringa semplice, invece di fare putString dovrebbe bastarti questo:
Intent | Android Developers
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

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 testo EditText da un'activity ad un'altra
« Risposta #2 il: 21 Dicembre 2010, 19:41:49 CET »
0
Ciao a tutti,

avrei bisogno di sapere come passare il testo presente in un EditText da un'activity ad un'altra.

Questo è il metodo per fornire all'intent un intero e una stringa da passare:
Codice (Java): [Seleziona]
intent.putExtra(pkg+".myString", s);          
intent.putExtra(pkg+".myInt", i);

questo è il metodo per intercettare l'intero e la stringa:
Codice (Java): [Seleziona]
String s=intent.getStringExtra(pkg+".myString");
int i=intent.getIntExtra(pkg+".myInt", -1);

Invece se avessi un testo di un'EditText che tipo di dato dovrei utilizzare? non credo sia ne una stringa, ed escluderei che sia un intero.

quindi le mie domande sono:
come invio il testo di un'EditText ad un'altra activity tramite intent?
come intercetto questo testo nella seconda activity?


grazie!!
Lo passi come sempre.
Gli EditText restituiscono Editable, che al limite puoi convertire in stringa tramite il metodo .toString()
Quindi non c'é nessun problema ;)
Postate il LogCat LogCat LogCat LogCat LogCat

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Re:Passare testo EditText da un'activity ad un'altra
« Risposta #3 il: 22 Dicembre 2010, 11:41:31 CET »
0
ciao e grazie per le risposte,

seguendo i vostri consigli ho scritto:

Invio cosi:
Codice (Java): [Seleziona]
EditText testo = (EditText) findViewById(R.id.EditText01);
testo1 = testo.getText().toString();
intent.putExtra(pkg+".myString", testo1);

Intercetto cosi:
Codice (Java): [Seleziona]
String testo1 = intent.getStringExtra(pkg+".myString");
ma niente da fare.
penso che il problema sia in questa istruzione: testo1 = testo.getText().toString();
perchè se passo: testo1="ciao"; questa stringa viene passata.

Quindi mi viene il dubbio che testo.getText().toString(); non ritorni una stringa.

Qualche idea per risolvere?

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Passare testo EditText da un'activity ad un'altra
« Risposta #4 il: 22 Dicembre 2010, 11:47:10 CET »
0
Il codice che hai scritto è esatto, quindi controlla che l'edit text che prendi (R.id.EditText01) sia effettivamente quello che visualizzi e che sia riempito con un testo.

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Re:Passare testo EditText da un'activity ad un'altra
« Risposta #5 il: 22 Dicembre 2010, 12:11:08 CET »
0
Mi sto scoraggiando!

L'id dell' EditText è esatto.
Corrisponde all'EditText in cui immetto il testo.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Passare testo EditText da un'activity ad un'altra
« Risposta #6 il: 22 Dicembre 2010, 12:13:15 CET »
0
Metti dei tracciamenti sul codice, ti saranno d'aiuto a capire cosa succede.


Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Re:Passare testo EditText da un'activity ad un'altra
« Risposta #7 il: 22 Dicembre 2010, 13:16:21 CET »
0
FUNZIONA
Codice (Java): [Seleziona]
TextView testo = (TextView)findViewById(R.id.tview);
String testo2 = (String)testo.getText().toString();

intent.putExtra(pkg+".myString", testo2);

FUNZIONA
Codice (Java): [Seleziona]
Button testo = (Button)findViewById(R.id.bntStartSecondActivity);
String testo2 = (String)testo.getText().toString();

intent.putExtra(pkg+".myString", testo2);

NON FUNZIONA
Codice (Java): [Seleziona]
EditText testo = (EditText)findViewById(R.id.EditT);
String testo2 = (String)testo.getText().toString();

intent.putExtra(pkg+".myString", testo2);


Perchè per l'EditText non vale lo stesso che per le TextView o per i Button?

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Passare testo EditText da un'activity ad un'altra
« Risposta #8 il: 22 Dicembre 2010, 13:37:03 CET »
+1
Sento puzza di codice messo nell'onCreate...

Dove metti quel codice?
Quando inserisci il testo nell'EditText?
Dopo che inserisci il testo nell'EditText come fai partire il quel codice?

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Passare testo EditText da un'activity ad un'altra
« Risposta #9 il: 22 Dicembre 2010, 14:13:20 CET »
0
Sento puzza di codice messo nell'onCreate...

Dove metti quel codice?
Quando inserisci il testo nell'EditText?
Dopo che inserisci il testo nell'EditText come fai partire il quel codice?

già... prova a mettere il codice

Codice (Java): [Seleziona]
EditText testo = (EditText)findViewById(R.id.EditT);
String testo2 = (String)testo.getText().toString();
intent.putExtra(pkg+".myString", testo2);

prima di di far partire la seconda activity, quindi prima di chiamare startActivity(....)

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 testo EditText da un'activity ad un'altra
« Risposta #10 il: 22 Dicembre 2010, 14:16:23 CET »
0
Quel codice va messo appena prima del codice per lanciare la seconda activity.. Se lo metti nell'onCreate (come Marco pensa tu stia facendo), quando va a fare il getText, possibilmente non trova niente nell'EditText.
Anche qualora trovasse qualcosa (nel caso in cui tu abbia settato l'attributo android:text da xml) non sarebbe comunque quello che poi l'utente va ad inserire, ma solamente quel valore di default.

Edit: aggiungo inoltre che i codici per il Button e la TextView funzionano perché hanno appunto android:text settato
Postate il LogCat LogCat LogCat LogCat LogCat

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Re:Passare testo EditText da un'activity ad un'altra
« Risposta #11 il: 22 Dicembre 2010, 14:29:39 CET »
0
Grandeee MarcoDuff!!

Risolto!

Come uno stupido assegnavo alla variabile testo2 il campo dell'EditText vuoto.
Invece per prelevare il valore digitato all'interno del campo EditText ovviamente devo aspettare che l'utente inserisca qualcosa. :-P

Grazie mille anche a Qlimax e blackgin che in più mi hanno aiutato a fissare le idee!