0

I'm using 2 activities to parse a Json, in the first activity I pass the name and when I tap on it, it shows me its contacts, and as you can see I have an array of "contatos" with 2 objects.

{
    "total": 1,
    "dados": [
        {
            "id": "9",
            "id_rm_empresa": "2",
            "id_rm_tipo_cliente": "1",
            "tipo_pessoa": "PJ",
            "cpf": null,
            "nome": "Microsoft",
            "cnpj": null,
            "ie": null,
            "suframa": null,
            "ramo_de_atividade": null,
            "ano_de_fundacao": null,
            "informacoes_adicionais": "informação do clientes",
            "enderecos": [
                {
                    "id_rm_endereco": "21",
                    "endereco": "Rua Rudolph Diesel",
                    "numero": "174",
                    "complemento": "",
                    "bairro": "Industrial",
                    "cep": "86063-330",
                    "cidade": "Londrina",
                    "estado": "Paraná",
                    "tipo_endereco": "Residencial",
                    "criado": "2013-09-01 07:00:00",
                    "modificado": "2013-09-03 18:30:31",
                    "status": "A"
                },
                {
                    "id_rm_endereco": "56",
                    "endereco": "Rua Pará",
                    "numero": "1500",
                    "complemento": "5 andar",
                    "bairro": "Centro",
                    "cep": "86020-400",
                    "cidade": "Londrina",
                    "estado": "Paraná",
                    "tipo_endereco": "Comercial",
                    "criado": "2013-09-01 07:00:00",
                    "modificado": "2013-09-03 18:30:36",
                    "status": "A"
                }
            ],
            "contatos": [
                {
                    "id_rm_cliente": "10",
                    "id_rm_contato": "1",
                    "id_rm_empresa": "2",
                    "nome": "Bill Gates",
                    "cargo": "Diretor",
                    "telefones": [
                        {
                            "id_rm_cliente": "10",
                            "id_rm_contato": "1",
                            "id_rm_telefone": "4",
                            "id_rm_empresa": "2",
                            "tipo": "Trabalho",
                            "numero": "(22) 2222-2222",
                            "criado": "2013-09-01 07:00:00",
                            "modificado": "2013-09-03 18:30:32",
                            "status": "A"
                        },
                        {
                            "id_rm_cliente": "10",
                            "id_rm_contato": "1",
                            "id_rm_telefone": "9",
                            "id_rm_empresa": "2",
                            "tipo": "Celular",
                            "numero": "(44) 4444-4444",
                            "criado": "2013-09-01 07:00:00",
                            "modificado": "2013-09-03 18:30:30",
                            "status": "A"
                        }
                    ],
                    "emails": [
                        {
                            "id_rm_cliente": "10",
                            "id_rm_contato": "1",
                            "id_rm_email": "5",
                            "id_rm_empresa": "2",
                            "tipo": "Trabalho",
                            "email": "[email protected]",
                            "criado": "2013-09-01 07:00:00",
                            "modificado": "2013-09-03 18:30:30",
                            "status": "A"
                        }
                    ],
                    "criado": "2013-09-01 07:00:00",
                    "modificado": "2013-09-03 18:30:30",
                    "status": "A"
                },
                {
                    "id_rm_cliente": "10",
                    "id_rm_contato": "7",
                    "id_rm_empresa": "2",
                    "nome": "Linus Torvalds",
                    "cargo": "Diretor",
                    "telefones": [
                        {
                            "id_rm_cliente": "10",
                            "id_rm_contato": "1",
                            "id_rm_telefone": "4",
                            "id_rm_empresa": "2",
                            "tipo": "Trabalho",
                            "numero": "(22) 2222-2222",
                            "criado": "2013-09-01 07:00:00",
                            "modificado": "2013-09-03 18:30:30",
                            "status": "A"
                        }
                    ],
                    "emails": [
                        {
                            "id_rm_cliente": "10",
                            "id_rm_contato": "1",
                            "id_rm_email": "5",
                            "id_rm_empresa": "2",
                            "tipo": "Trabalho",
                            "email": "[email protected]",
                            "criado": "2013-09-01 07:00:00",
                            "modificado": "2013-09-03 18:30:30",
                            "status": "A"
                        }
                    ],
                    "criado": "2013-09-01 07:00:00",
                    "modificado": "2013-09-03 18:30:32",
                    "status": "A"
                }
            ],
            "telefones": [
                {
                    "id_rm_empresa": "2",
                    "id_rm_cliente": "10",
                    "id_rm_telefone": "1",
                    "numero": "(43)3025-1355",
                    "tipo": "Casa",
                    "criado": "2013-09-01 07:00:00",
                    "modificado": "2013-09-03 18:30:30",
                    "status": "A"
                },
                {
                    "id_rm_empresa": "2",
                    "id_rm_cliente": "10",
                    "id_rm_telefone": "2",
                    "numero": "(43)3000-6562",
                    "tipo": "Trabalho",
                    "criado": "2013-09-01 07:00:00",
                    "modificado": "2013-09-03 18:30:33",
                    "status": "A"
                }
            ],
            "emails": [
                {
                    "id_rm_cliente": "10",
                    "id_rm_contato": "1",
                    "id_rm_email": "82",
                    "id_rm_empresa": "2",
                    "tipo": "Trabalho",
                    "email": "[email protected]",
                    "criado": "2013-09-01 07:00:00",
                    "modificado": "2013-09-03 18:30:30",
                    "status": "A"
                },
                {
                    "id_rm_cliente": "10",
                    "id_rm_contato": "1",
                    "id_rm_email": "12",
                    "id_rm_empresa": "2",
                    "tipo": "Trabalho",
                    "email": "[email protected]",
                    "criado": "2013-09-01 07:00:00",
                    "modificado": "2013-09-03 18:30:30",
                    "status": "A"
                }
            ],
            "criado": "2013-09-01 07:00:00",
            "modificado": "2012-09-04 18:30:37",
            "status": "A"
        }
    ]
}

Here is How I'm parsing the Json:

JSONArray dados = json.getJSONArray("dados");
            feedList = new ArrayList<ClientesModel>();
            contatoList = new ArrayList<ClientesContatosModel>();
            // parsing json object
            for (int i = 0; i < dados.length(); i++) {

                JSONObject item = dados.getJSONObject(i);
                ClientesModel mClientesModel = new ClientesModel();


                mClientesModel.setId_rm(item.optInt("id"));
                mClientesModel.setNome(item.optString("nome"));
                mClientesModel.setTipo_pessoa(item.optString("tipo_pessoa"));
                mClientesModel.setInformacoes_adicionais(item.optString("informacoes_adicionais"));
                mClientesModel.setCpf(item.optString("cpf"));
                mClientesModel.setCnpj(item.optString("cnpj"));

                feedList.add(mClientesModel);

                JSONArray contatos = item.getJSONArray("contatos");

                    for (int j = 0; j < contatos.length(); j++) {


                        JSONObject data = contatos.getJSONObject(j);

                        ClientesContatosModel mClientesContatoModel = new ClientesContatosModel();

                        mClientesContatoModel.setId_rm(data.optInt("id_rm_cliente"));
                        mClientesContatoModel.setNomeContato(data.optString("nome"));
                        mClientesContatoModel.setCargo(data.optString("cargo"));

                        contatoList.add(mClientesContatoModel);


                    }


            }

And here is how I'm passing the information to another activity:

public void updateList() {


        feedListView= (ListView) findViewById(R.id.custom_list);
        feedListView.setVisibility(View.VISIBLE);
        progressbar.setVisibility(View.GONE);
        feedListView.setAdapter(new CustomListAdapter(this, feedList));

        final ListView V = (ListView) findViewById(R.id.contato_list);
        //V.setVisibility(View.VISIBLE);
        V.setAdapter(new ContatosListAdapter(this, contatoList));

        feedListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> a, View v, int position, long id) {


                ClientesContatosModel newsData = contatoList.get(position);

                System.out.println(newsData);

                Intent intent = new Intent(FeedListActivity.this, FeedDetailsActivity.class);
                intent.putExtra("feed", newsData);
                startActivity(intent);

            }

        });



    }

Here is what is happening:

enter image description here !enter image description here it is not showing the second contact of the array.

1 Answer 1

1

You have 2 contacts in your array, but you are only passing one of them in the intent. You might want to pass the whole array in the intent and handle that in your FeedDetailsListActivity.

Sign up to request clarification or add additional context in comments.

1 Comment

Have you considered to store those data in model, which can be accessed from both activities? In this scenario you could pass only the name through intent, and read proper data from model in second activity based on this information.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.