Passare oggetti alle Activity in Android tramite gli Intent

Mattepuffo's logo
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!


Condividi

Commentami!