Passare oggetti alle Activity in Android tramite gli Intent

Passare oggetti alle Activity in Android tramite gli Intent

In Android, attraverso il meccanismo degli Intent, è possibile richiamare e passare valori tra le Activity.

Per farlo abbiamo due metodi:

  • putExtra -> invia i dati
  • getExtra -> raccoglie i dati

Di default è possibile inviare solo dati nei formati standard; String, int, char, ecc.

E' possibile passare oggetti custom, ma devono implementare almeno Serializable.

Dico almeno perchè potremmo usare anche Parcelable, ma al momento lo trovo solo più macchinoso.

Quindi noi andremo con Serializable:

import java.io.Serializable;

public class Users implements Serializable {

    public long id;
    public String userName;
}

Adesso nella nostra Activity primaria:

Users users = new Users();
users.id = 1;
users.userName = "CIAO";

Intent intent = new Intent(this, HomeActivity.class);
intent.putExtra("USERS", us);
startActivity(intent);

Infine nella Activity secondaria:

import android.content.Intent;
import android.os.Bundle;
import android.view.View;

import androidx.appcompat.app.AppCompatActivity;

public class HomeActivity extends AppCompatActivity {

    private Users u;

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

        u = (Users) getIntent().getSerializableExtra("USERS");
	    Log.i("U", u.userName);
    }
}

Come vedete abbiamo usato getSerializableExtra in questo caso, in quanto abbiamo implementato Serializable.

Enjoy!




Share

Commentami!

About Mattepuffo.com

Blog dedicato all'informatica e alla programmazione!
Tutti i contenuti di questo blog, tranne casi particolari, sono sotto licenza Licenza Creative Commons Creative Commons Attribution-Noncommercial-Share Alike 2.5. .

2707 articoli
310 commenti
21 progetti
Altri link
  • About
  • Scrivimi
  • Copyright
  • Sitemap
  • matteo.ferrone@yahoo.it
  • GitHub
  • Privacy Policy