Olá, boa noite.
Eu tentei implementar o uso de parcel para envio de dados entre as Activities seguindo o exemplo do post da medium que vocês recomendaram (https://medium.com/@lucas_marciano/por-que-usar-o-parcelable-ao-inv%C3%A9s-do-serializable-5f7543a9c7f3), mas não consegui fazer compilar.
O compilador aponta que não consegue resolver o termo "from" na classe Aluno:
private Aluno(Parcel p) {
nome = from.readString();
telefone = from.readString();
email = from.readString();
}
Segue abaixo o erro reportado:
C:\Users\olivd17\AndroidStudioProjects\agenda\Agenda\app\src\main\java\alura\com\br\model\Aluno.java:21: error: cannot find symbol nome = from.readString(); ^ symbol: variable from
O que esta havendo de errado?
Eu subi o projeto no Github se quiserem baixar para analisar: https://github.com/denis-oliveira/agenda/tree/parcel
Segue o código inteiro da classe Aluno:
package alura.com.br.model;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.NonNull;
// Class to store student information
public class Aluno implements Parcelable {
private final String nome;
private final String telefone;
private final String email;
public Aluno(String nome, String telefone, String email) {
this.nome = nome;
this.telefone = telefone;
this.email = email;
}
private Aluno(Parcel p) {
nome = from.readString();
telefone = from.readString();
email = from.readString();
}
public static final Parcelable.Creator<Aluno>
CREATOR = new Parcelable.Creator<Aluno>() {
public Aluno createFromParcel(Parcel in) {
return new Aluno(in);
}
public Aluno[] newArray(int size) {
return new Aluno[size];
}
};
public String getNome() {
return nome;
}
public String getTelefone() {
return telefone;
}
public String getEmail() {
return email;
}
@NonNull
@Override
public String toString() {
return this.nome;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(nome);
dest.writeString(telefone);
dest.writeString(email);
}
}