Pegar valor JSON de um array

1 resposta Resolvido
java
W

Ola, tenho um codigo que pega meu JSON da web e retorna os valores para meu adapter.
Mas no caso eu quero agora que o valor recebido que no caso e so um, seja setado em um TextView e nao estou sabendo o que fazer.

O codigo que retorna os valores para meu adapter:

List<HashMap<String, String>> list = new ArrayList<>();

        try {
            JSONObject jobj = new JSONObject(jsonResposnce);
            JSONArray jarray = jobj.getJSONArray("items");


            for (int i = 0; i < jarray.length(); i++) {

                JSONObject jo = jarray.getJSONObject(i);

                String itemName = jo.getString("itemName");
                String brand = jo.getString("brand");
                String price = jo.getString("price");


                HashMap<String, String> item = new HashMap<>();
                item.put("itemName", itemName);
                item.put("brand", brand);
                item.put("price",price);

                list.add(item);


            }
        } catch (JSONException e) {
            e.printStackTrace();
        }


        adapter = new SimpleAdapter(this,list,R.layout.list_item_row, new String[]{"itemName","brand","price"},new int[]{R.id.tv_item_name,R.id.tv_brand,R.id.tv_price});
        listView.setAdapter(adapter);
        loading.dismiss();

Neste codigo ele retorna os valores do JSON para o adapter, agora com o retorno de um so valor eu quero setar ele a um TextView

1 Resposta

A
Solucao aceita

Se eu entendi direito sua pergunta você simplesmente pode pegar acessando os itens da sua list

private TextView txtTvName;
private TextView txtTvBrand;
private TextView txtTvPrice;
txtTvName = findViewById(R.id.tv_item_name);
txtTvBrand = findViewById(R.id.tv_brand);
txtTvPrice = findViewById(R.id.tv_price);

//aqui vai todo seu codigo

no lugar disto você vai por esse código aqui:

//somente para nao quebrar ao fazer o get
    if(list.size() > 0){
        txtTvName.setText(list.get(0).get("itemName"));
        txtTvBrand.setText(list.get(0).get("brand"));
        txtTvPrice.setText(list.get(0).get("price"));
    }

Ou simplesmente mudar todo o escopo e ao invés de por os itens dentro do hasmap, já inserir direto no textView, mas lembrando que se vier outra informação ele irá reescrever.

Criado 24 de julho de 2021
Ultima resposta 29 de jul. de 2021
Respostas 1
Participantes 2