Leonardo Inhoqui
Leonardo Inhoqui

Reputation: 37

Intent Object Put Extra App Stop

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

Answers (4)

Leonardo Inhoqui
Leonardo Inhoqui

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

Komal12
Komal12

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

babedev
babedev

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

Dharmbir Singh
Dharmbir Singh

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

Related Questions