Reputation: 37
I'm new to android and I'm having a lot of trouble finding help in some things, the example below is giving application in stopped I want to pass an obejto per parameter in the attempt however the putExtra
when commenting works by putting it in the code for application, I'm over already 3 hours looking on the internet and I can not find anything to help me!
Here is what I did,
LoginConfig loginConfig = new LoginConfig(Integer.parseInt(jsonObject.getString("id_identificador")),
jsonObject.getString("nome").toString(),
jsonObject.getString("email").toString(),
jsonObject.getString("telefone").toString());
Intent it = new Intent(this,MainActivity.class);
it.putExtra("login_config", (Serializable) loginConfig);
startActivity(it);
Upvotes: 0
Views: 117
Reputation: 37
I have this problem now: java.lang.RuntimeException: Parcelable encountered IOException writing serializable object .. Class Filho implements serializable
public View getView(int position, View view, ViewGroup parent)
{
final Filho filhoPosition = this.listaFilhos.get(position);
view = LayoutInflater.from(this.context).inflate(R.layout.lista_filho,null);
TextView textViewNomeFilho = (TextView) view.findViewById(R.id.textViewNomeFilho);
TextView textViewTelefoneFilho = (TextView) view.findViewById(R.id.textViewTelefoneFilho);
ImageView imageViewFotoFilho = (ImageView) view.findViewById(R.id.imageViewFotoFilho);
textViewNomeFilho.setText(filhoPosition.getNome());
textViewTelefoneFilho.setText(filhoPosition.getTelefone());
imageViewFotoFilho.setImageBitmap(filhoPosition.getFoto());
final ImageButton imageButtonConfigFilho = (ImageButton) view.findViewById(R.id.imageButtonConfigFilho);
imageButtonConfigFilho.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
filho = new Filho(filhoPosition.getIdFilho(),filhoPosition.getNome(),filhoPosition.getTelefone(),filhoPosition.getFoto(),filhoPosition.getLoginConfig());
Intent it = new Intent(context, CadastrarFilhoActivity.class);
it.putExtra("filho",filho);
context.startActivity(it);
}
});
return view;
}
Upvotes: 0
Reputation: 3348
Try this,
Login class implements Serializable
public class LoginConfig implements Serializable {
.
.
.
}
Intent
LoginConfig loginConfig = new LoginConfig(
Integer.parseInt(jsonObject.getString("id_identificador")),
jsonObject.getString("nome").toString(),
jsonObject.getString("email").toString(),
jsonObject.getString("telefone").toString());
Intent it = new Intent(this,MainActivity.class);
it.putExtra("login_config", loginConfig);
startActivity(it);
MainActivity
Intent i = getIntent();
LoginConfig login_config = (LoginConfig)i.getSerializableExtra("login_config");
Upvotes: 0
Reputation: 135
You have to implement LoginConfig with Parcelable
https://developer.android.com/reference/android/os/Parcelable.html
or use libraries such as Parceler, Paperparcel
Upvotes: 2
Reputation: 17535
Please convert first loginConfit to string and then pass it like
Intent it = new Intent(this,MainActivity.class);
it.putExtra("login_config", loginConfig.toString());
startActivity(it);
In second activity get your value like that
String previousValue = getIntent().getStringExtra("login_config");
Gson gson = new Gson();
LoginConfig ae = gson.fromJson(previousValue, LoginConfig.class);
Note: add this file to your gradle file for Gson
Class.
compile 'com.google.code.gson:gson:2.6.2'
Upvotes: 0