Autore Topic: [facile] Passaggio di dati tra un'activity ed un'altra  (Letto 12897 volte)

Offline Zate

  • Utente normale
  • ***
  • Post: 205
  • Respect: +44
    • Mostra profilo
Re:[facile] Passaggio di dati tra un'activity ed un'altra
« Risposta #75 il: 14 Gennaio 2012, 20:46:43 CET »
+1
Citazione
Per rendere univoci i nomi delle chiavi passate è consigliato (la doc dice 'must') aggiungere il nome del nostro package davanti al nome
Quindi la stringa pkg sarà, per esempio: com.your.package. A com.your.package dobbiamo aggiungere la parte che distinguerà i vari dati. Qlimax ha quindi aggiunto a pkg (ovvero com.your.package) .MyString. Il nome di quello che passerai sarà dunque com.your.package.MyString. Devi dunque aggiungere la stringa che vuoi passare, nel tuo caso il sito. Per poter recuperare i dati devi utilizzare il nome (com.your.package.MyString, cioè pkg+".MyString") attraverso getExtra. Dunque il tuo codice dovrebbe diventare più o meno così:
Codice (Java): [Seleziona]
private void startSubactivity() {
    Intent intent = new Intent(this, Santo.class);
    String pkg=getPackageName();
    intent.putExtra(pkg+".MyString", "http://www.tuttoilmondo.it/app/PadovaWebCam/Santo.html");
    startActivity(intent);
}
e
Codice (Java): [Seleziona]
public class Santo extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webcam);
         Intent intent = getIntent();
        String pkg=getPackageName();
        String s = intent.getStringExtra(pkg+".MyString");
        WebView webview = new WebView(Santo.this);
         setContentView(webview);
         webview.loadUrl(s);
    }
}
« Ultima modifica: 14 Gennaio 2012, 20:49:06 CET da Zate »

Offline tuttoilmondo

  • Utente junior
  • **
  • Post: 59
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire Z
  • Sistema operativo:
    Mac OS X 10.7
Re:[facile] Passaggio di dati tra un'activity ed un'altra
« Risposta #76 il: 23 Gennaio 2012, 20:59:24 CET »
0
Quindi la stringa pkg sarà, per esempio: com.your.package. A com.your.package dobbiamo aggiungere la parte che distinguerà i vari dati. Qlimax ha quindi aggiunto a pkg (ovvero com.your.package) .MyString. Il nome di quello che passerai sarà dunque com.your.package.MyString. Devi dunque aggiungere la stringa che vuoi passare, nel tuo caso il sito. Per poter recuperare i dati devi utilizzare il nome (com.your.package.MyString, cioè pkg+".MyString") attraverso getExtra. Dunque il tuo codice dovrebbe diventare più o meno così:

Il tuo codice è chiaro è ho capito come usarlo. L'ho già applicato su una mia app dove avevo creato un activity per ogni indirizzo. Grazie mille !

Mi sie è creato però un problema. Avendo un activity per indirizzo web, potevo impostare per ogni activity l'orientamento portrait o landscape, alcune pagine devo vederle in orizontale e altre in verticale (forzato e non libero in basa all'orientamento). Adesso che l'activity è una sola che faccio ? Devo sbloccare e lasciar fare all'utente orientando il telefono, o esiste una soluzione ?

Grazie

Paolo
Le mie App sul market Android, Apple e Blackbarry:
Bacchiglione, Colorare, Debito Pubblico, Milano WebCam, Padova WebCam, Palermo WebCam, Venezia WebCam
Android Market
BlackBerry Store

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 732
  • Respect: +177
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Nexus One - Wildfire - Magic
  • Market Developer Name:
    egsolutions
  • Sistema operativo:
    Ubuntu 11.04, Windows 7
Re:[facile] Passaggio di dati tra un'activity ed un'altra
« Risposta #77 il: 23 Gennaio 2012, 22:22:10 CET »
0
Il tuo codice è chiaro è ho capito come usarlo. L'ho già applicato su una mia app dove avevo creato un activity per ogni indirizzo. Grazie mille !

Mi sie è creato però un problema. Avendo un activity per indirizzo web, potevo impostare per ogni activity l'orientamento portrait o landscape, alcune pagine devo vederle in orizontale e altre in verticale (forzato e non libero in basa all'orientamento). Adesso che l'activity è una sola che faccio ? Devo sbloccare e lasciar fare all'utente orientando il telefono, o esiste una soluzione ?

Grazie

Paolo
Qui stiamo andando OT.
Cerca sul forum se il tuo problema è gia' stato risolto. Eventualmente apri un nuovo topic.

Offline lscaper

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • lorenzo.spinelli.spina
    • Mostra profilo
  • Dispositivo Android:
    Samsung GT-I9100
  • Sistema operativo:
    ubuntu, windows 7
Re:[facile] Passaggio di dati tra un'activity ed un'altra
« Risposta #78 il: 27 Gennaio 2012, 23:31:27 CET »
0
Ciao a tutti

E' possibile dalla seconda activity toranre alla prima e passare dei parametri?
Nel frattempo la prima dovrebbe essere rimasta in ascolto.

ad esempio per fare una pagina di login, toranre alla prima activity true / false, se il login viene effettuato correttamtne o no

grazie

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 732
  • Respect: +177
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Nexus One - Wildfire - Magic
  • Market Developer Name:
    egsolutions
  • Sistema operativo:
    Ubuntu 11.04, Windows 7
Re:[facile] Passaggio di dati tra un'activity ed un'altra
« Risposta #79 il: 28 Gennaio 2012, 20:07:44 CET »
+1
Ciao a tutti

E' possibile dalla seconda activity toranre alla prima e passare dei parametri?
Nel frattempo la prima dovrebbe essere rimasta in ascolto.

ad esempio per fare una pagina di login, toranre alla prima activity true / false, se il login viene effettuato correttamtne o no

grazie

Questi metodi ti permettono di realizzare quello che intendi:

Activity A lancia activity B
developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int)
e "ascolta"
developer.android.com/reference/android/app/Activity.html#onActivityResult(int, int, android.content.Intent)

B "risponde"
developer.android.com/reference/android/app/Activity.html#setResult(int)
developer.android.com/reference/android/app/Activity.html#finish()


Offline vecio88

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:[facile] Passaggio di dati tra un'activity ed un'altra
« Risposta #80 il: 06 Febbraio 2012, 15:20:23 CET »
0
Codice (Java): [Seleziona]
    public void viewStorico(View view) {
        StoricoRilevazioni sr = new StoricoRilevazioni(c);
        intent = new Intent(c, StoricoActivity.class);

        String pkg = getPackageName();

        intent.putExtra("mySr", sr);

        startActivity(intent);
    }

A me da errore su startActivity(intent) dice che può essere eseguito quel metodo...come mai??

Offline Ormet

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Google+
    • Marco Falotico
    • Mostra profilo
  • Dispositivo Android:
    HTC EVO 3D
  • Market Developer Name:
    Ormet
  • Sistema operativo:
    Windows 7
Re:[facile] Passaggio di dati tra un'activity ed un'altra
« Risposta #81 il: 21 Febbraio 2012, 22:58:47 CET »
0
Grazie mille del tutorial!!
Una domanda, se creo per esempio 10 activity con un layout ciascuna posso, con la pressione del tasto indietro far tornare il programma automaticamente all'ultima activity aperta?
Per esempio se clicco il pulsante 10, che apre il layout della activity 10, dopo essere stato nella 3, posso tornarci premendo il tasto indietro?se si come?immagino esista una procedura automatica che me lo permetta..  :-)
Grazie mille..

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 732
  • Respect: +177
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Nexus One - Wildfire - Magic
  • Market Developer Name:
    egsolutions
  • Sistema operativo:
    Ubuntu 11.04, Windows 7
Re:[facile] Passaggio di dati tra un'activity ed un'altra
« Risposta #82 il: 22 Febbraio 2012, 16:21:33 CET »
0
Grazie mille del tutorial!!
Una domanda, se creo per esempio 10 activity con un layout ciascuna posso, con la pressione del tasto indietro far tornare il programma automaticamente all'ultima activity aperta?
Per esempio se clicco il pulsante 10, che apre il layout della activity 10, dopo essere stato nella 3, posso tornarci premendo il tasto indietro?se si come?immagino esista una procedura automatica che me lo permetta..  :-)
Grazie mille..

Questo è il già funzionamento di default del "tasto indietro" su android.
Forse non ho capito bene la tua domanda.

Offline Ormet

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Google+
    • Marco Falotico
    • Mostra profilo
  • Dispositivo Android:
    HTC EVO 3D
  • Market Developer Name:
    Ormet
  • Sistema operativo:
    Windows 7
Re:[facile] Passaggio di dati tra un'activity ed un'altra
« Risposta #83 il: 23 Febbraio 2012, 20:26:27 CET »
0
ho creato questo codice
Codice (XML): [Seleziona]
        public boolean onKeyDown(int keyCode, KeyEvent indietro) {
            if ((keyCode == KeyEvent.KEYCODE_BACK)) {
                return true;
            }
            return super.onKeyDown(keyCode, indietro);
        }
e volevo che dopo aver aper le activity 2, la  3 e dopo la 10, alla pressione del tasto indietro mi facesse tornare alla 3, dopo di che alla precedente, cioè alla 2..infine alla home.

per esempio quello che potrebbe essere un
Codice: [Seleziona]
KeyEvent.previouspage..ma non esiste!
spero di essermi spiegato, perchè nel mio programma non funziona e soprattutto non riesce a partire assieme all'option menu..
grazie mille cmq
« Ultima modifica: 23 Febbraio 2012, 20:36:52 CET da Ormet »

Offline ciby

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
Re:[facile] Passaggio di dati tra un'activity ed un'altra
« Risposta #84 il: 11 Aprile 2012, 12:08:15 CEST »
0
salve , quanto riguarda questa istruzione : Button button=(Button)findViewById(R.id.startAct2); , ma come faccio ad avere startAct2 nel mio file R. class???

Offline mpigio

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Windows XP
Re:[facile] Passaggio di dati tra un'activity ed un'altra
« Risposta #85 il: 24 Aprile 2012, 18:23:51 CEST »
0
Ciao a tutti, ho iniziato da poco a programmare x android e spero di non essere OT.

Ho un activity (A1) con TabHost che carica un mio oggetto da DB, per semplificare diciamo i dati relativi ad una persona, queste informazioni presenti su una classe (Persona) dichiarata in A1 dovrebbero essere passate ai diversi tab per l'edit.

L'utente tramite i diversi tab può modificare tali info e premendo in un bottone di A1 salvare in un sol colpo tutte le info di persona :)

Qual'è il sistema migliore di organizzare l'activity? Passo la classe Persona da A1 alle activity dei tab con l'Intent? Poi come le recupero per il salvataggio?
Pensavo di tenere le info su un unica istanza della classe Persona di A1 ed aggiornare direttamente li, ma come posso fare?
Se dichiaro Persona come public su A1 poi come arrivo su A1 dai singoli tab?

Potreste darmi qualche indicazione sulla strada migliore da seguire?
Grazie

Offline Ansem

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    2.3.7
Re:[facile] Passaggio di dati tra un'activity ed un'altra
« Risposta #86 il: 29 Aprile 2012, 16:56:29 CEST »
0
raga io ho una domanda:
io ho 3 activity:
-login
-scelta
-entrata

io mi devo passare il nome dell'utente da login a scelta,e fino a qui nessun prolema,il problema viene quando devo passarlo da scelta a entrata.
In pratica quando passo da login a scelta ho senza problema il nome,ma quando poi arrivo in entrata il nome non ce l'ho più.
Il codice di scelta per il passaggio di activity è questo:
Codice: [Seleziona]
// l'intent di questa activity
                Intent intent=getIntent();
                String pkg=getPackageName();
                //prendiamo i dati         
                String nome=intent.getStringExtra(pkg+".myNome");
            String Id=intent.getStringExtra(pkg+".myId");
            //li reinseriamo nell'intent
            intent.putExtra(pkg+".myNome2", nome);
                intent.putExtra(pkg+".myId2", Id);
                intent=new Intent(getApplicationContext(), entrata.class);
                startActivity(intent);
mentre qui c'è il codice da qui prendo i dati in entrata e li visualizzo in una tetview:
Codice: [Seleziona]
Intent intent=getIntent(); // l'intent di questa activity
    String pkg=getPackageName();   
    String nome=intent.getStringExtra(pkg+".myNome2");  //prendiamo i dati
 
    TextView tvNome =  (TextView) findViewById(R.id.nome);
        tvNome.setText(nome);

Offline AntonioE.

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Microsoft Windows 7 x64
Re:[facile] Passaggio di dati tra un'activity ed un'altra
« Risposta #87 il: 10 Maggio 2012, 16:24:41 CEST »
0
Ciao una domanda:

In un'activity A uso il metodo riportato in prima pagina per passare ad un'activity B un ArrayList<Sondaggio> dove Sondaggio è una classe con varie variabili d'istanza quali stringhe ed interi, ma quando nella seconda activity controllo i contenuti di tale array, mi dice che ha size() = 0 ... dove sbaglio?

codice dell'activity A
Citazione
Intent intent = new Intent(getApplicationContext(), RiepilogoActivity.class);
                String pkg = getPackageName();
                intent.putExtra(pkg + ".sondarray", sondarray);
               startActivity(intent);

codice dell'activity B

Citazione
Intent intent = getIntent();
      String pkg = getPackageName();
      
      
      ArrayList<Sondaggio> sondarray = (ArrayList<Sondaggio>) intent.getSerializableExtra(pkg + ".sondarray");
      String[] cols = new String[sondarray.size()];
      System.out.println("\nDimensione: " + sondarray.size());
      for(int i=0;i<sondarray.size();i++)
      {
         cols[ i ] = sondarray.get(i).getDomanda();
         System.out.println("\nAggiunta domanda: " + sondarray.get(i).toString());
      }


ups ... trovato l'inghippo, aggiungevo nel pezzo di codice sbagliato gli elementi che mi servivano
« Ultima modifica: 10 Maggio 2012, 16:35:28 CEST da AntonioE. »
Non c'è cattivo più cattivo di un buono che diventa cattivo