Autore Topic: Problema con il passare dei valori tra Activity  (Letto 700 volte)

Offline Massy97

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 4, Huawei Y300
  • Sistema operativo:
    Windows 8.1
Problema con il passare dei valori tra Activity
« il: 28 Marzo 2015, 17:14:31 CET »
0
Salve a tutti ragazzi sono nuovo del forum e sopratutto sono un autodidatta per quanto riguarda AndroidStudio, detto ciò vi espongo il mio "problema".
Cercherò di spiegarlo in modo molto basilare per fare in modo che sia comprensibile.

Quello che vorrei fare io è:
-Creare una MainActivity[1] e inserire al suo interno un Bottone di nome [A], fatto ciò premere il Button[A] e aprire una nuova MainActivity[2]. [Fatto]
-Creare una MainActivity[2] e inserire al suo interno una Lista di nome [listView] che, al click di una stringa, porti il nome della string in [A]. [Fatto in parte]

Nel secondo punto ho creare una ListView e tramite una (String) ho inserito i vari valori, dopo di che ho impostato il click con il (setOnItemClickListener) il problema sta nel trasferire la stringa, in quanto ho provato con...



Codice (Java): [Seleziona]
final String Ricevuto=getIntent().getExtras().getString("Partenza");

       //In MainActivity//
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent pagina = new Intent(getApplicationContext(), MainActivity2.class);
                startActivity(pagina);}
        });

        button.setText(Ricevuto);

Codice (Java): [Seleziona]
//In MainActivity2//
        lista.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> av, View v, int pos, long id) {
                Nome = ("" + lista1[pos]);
                Intent pagina1 = new Intent(getApplicationContext(), MainActivity.class);
                pagina1.putExtra("Partenza",Nome.toString());
               startActivity(pagina1);



Il problema è che al primo avvio con AndroidStudio, l'app si blocca in modo anomalo e poi il bottone [A] è senza testo, completante vuoto. Ma, dopo aver cliccato il bottone[A] l'app funziona perfettamente, quindi il bottone prende il nome della stringa qui e li.


Offline tonno16

  • Utente storico
  • *****
  • Post: 1186
  • Respect: +57
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Problema con il passare dei valori tra Activity
« Risposta #1 il: 28 Marzo 2015, 18:17:53 CET »
0
 NOn ho guardato il codice.

1 - metti il log ed editato col tag "code".
2 - usa stsrtActivityForResult() che si presta molto meglio
3 - Crasha perchè getIntent().getExtra()... ritorna null probabilmente
« Ultima modifica: 28 Marzo 2015, 18:19:31 CET da tonno16 »

Offline Massy97

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 4, Huawei Y300
  • Sistema operativo:
    Windows 8.1
Re:Problema con il passare dei valori tra Activity
« Risposta #2 il: 28 Marzo 2015, 18:25:55 CET »
0
Cosa potrei fare?

Offline tonno16

  • Utente storico
  • *****
  • Post: 1186
  • Respect: +57
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Problema con il passare dei valori tra Activity
« Risposta #3 il: 28 Marzo 2015, 19:17:47 CET »
0
Quello che ho scritto.
Nel tuo metodo te cerchi un extra che ovviamente non esiste.

Con start activityforresult avvi un activity col preciso scopo di farti ritornare qualcosa.
La seconda activity è vincolata solo nel selezionare un valore dalla lista. Diciamo che hai la possibilità di spezzare il tuo codice in 2 cose indipendenti.
Cerca un qualsiasi tutorial su google. Quando seguii io stesso i tutorial essi si basavano soprattutto su un implementazione molto simile a quello che vuoi fare.

Offline Massy97

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 4, Huawei Y300
  • Sistema operativo:
    Windows 8.1
Re:Problema con il passare dei valori tra Activity
« Risposta #4 il: 28 Marzo 2015, 19:19:59 CET »
0
Ho risolto, adesso faccio un paio di test e scrivo il codice ;)

Post unito: 28 Marzo 2015, 20:09:04 CET
Allora il nuovo codice è questo,non crasha all'avvio, ma da ancora problemi con la nuova MainActivity[3].
Codice (Java): [Seleziona]
       //In MainActivity//
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent pagina = new Intent(getApplicationContext(), MainActivity2.class);
                startActivityForResult(pagina,0);}
        });
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent pagina = new Intent(getApplicationContext(), MainActivity3.class);
                startActivityForResult(pagina, 1);}
});

//A fine "ActionBarActivity" ho aggiunto questo//
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (data == null) {
            return;
        }
        String Partenza = data.getStringExtra("Partenza1");
        String Arrivo = data.getStringExtra("Arrivo1");
        button.setText("" + Partenza);
        button2.setText("" + Arrivo);
 }


Codice (Java): [Seleziona]
//In MainActivity2//
        lista.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> av, View v, int pos, long id) {
                Partenza = ("" + lista1[pos]);
                Intent intent = new Intent();
                intent.putExtra("Partenza1", Partenza.toString());
                setResult(RESULT_OK, intent);
                finish();

Codice (Java): [Seleziona]
//In MainActivity3//
        lista.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> av, View v, int pos, long id) {
                Arrivo = ("" + lista1[pos]);
                Intent intent = new Intent();
                intent.putExtra("Arrivo1", Arrivo.toString());
                setResult(RESULT_OK, intent);
                finish();

Il problema è che, al selezionamento di una stringa sulla MainActivity[2], il testo del bottone[2] diventa [null]. La stessa cosa con la MainActivity[3], il testo del bottone[1] diventa [null], ma in entrambi i casi il testo della stringa diventa il testo del bottone precedentemente cliccato
« Ultima modifica: 28 Marzo 2015, 20:09:05 CET da Massy97, Reason: Merged DoublePost »