GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Pegar valor JSON de um array

Tags: #<Tag:0x00007f22dab574b8>

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

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.

1 Curtida
//