Как я могу получать данные Кольектион Мап, чтобы показывать на экране в Android?

У меня есть код, где я получаю json с api в android, которую я храню в Map, сейчас я не знаю, как получать эти данные, которые прибывают к map, чтобы показывать их на экране.

Я добавляю мой код для того, чтобы поняли лучше.

Заранее, большое спасибо.

private class SendBeaconParamsTask extends AsyncTask<String,Void,Collection<Map<String,String>>> {

    @Override
    protected Collection<Map<String,String>> doInBackground(String... params) {

        String UUID = params[0];
        String major = params[1];
        String minor = params[2];

        Log.d("HTTP UUID",UUID);

        HttpClient client = new DefaultHttpClient();

        HttpGet request = new HttpGet("https://cloud.easycontext.com/api/list/ibeacon?key=aNC6-qnDB-MQoi-ir3L&appid=9663261952843665&uuid="+ UUID +"&major="+major+"&minor="+minor);

        try {
            HttpResponse response = client.execute(request);
            HttpEntity entity = response.getEntity();
            InputStream inputStream = entity.getContent();

            ByteArrayOutputStream content = new ByteArrayOutputStream();

            int readBytes = 0;

            byte[] sBuffer = new byte[512];

            while ((readBytes = inputStream.read(sBuffer)) != -1) {
                content.write(sBuffer,0,readBytes);
            }

            String dataAsString = new String(content.toByteArray());

            Log.d("HTTP RESULT", dataAsString);

            Gson gson = new Gson();

            Type collectionType = new TypeToken<Collection<Map<String,String>>>(){}.getType();
                Collection<Map<String,String>> collection = gson.fromJson(dataAsString,collectionType);
            return collection;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    protected void onPostExecute(Collection<Map<String,String>> collection) {
                    Log.d("HTTP",collection.toString());
        //obtain data from the map and display
    }
}

мой Json - следующий

[
    {
        "id":"<id>",
        "image":"<image_url>",
        "title":"<title>",
        "description":"<description>",
        "bigtext":"<bigtext>",
        "note1":"<note1>",
        "note2":"<note2>",
        "url":"<page_url>",
        "type":"<type>"
    }
]
2
задан 19.05.2016, 21:43
3 ответа

Если у тебя есть коллекция любого типа первой информации, ты должен пробегать ее, чтобы соглашаться на каждый из элементов, самая простая форма состоит в том, чтобы использовать нотацию for(... : ...), как только ты пробегаешь главный список ты можешь соглашаться на поля объекта как ассоциативной нормальной договоренности, для случая интерфейса Map ты можешь использовать get(key) чтобы получать стоимость, ассоциируемую с ключом.

Например, если ты хочешь печатать все ценные бумаги, код был бы следующим:

protected void onPostExecute(Collection<Map<String,String>> collection) {
    for(Map<String,String> elem : collection)
           Log.d("JSON",elem.get("title"));
}
2
ответ дан 24.11.2019, 14:20
  • 1
    функционируй чуда, сейчас только я бодаюсь в как показывать key " image" что является url в imageview, так как это не то же соглашение, что и с setText. – Aldo Gallardo 19.05.2016, 23:51

Ответ @SergioPeГ±afiel правилен, способ получать данные об одной colecciГіn, сейчас, как показывать их на экране?, ты это можешь реализовывать внутри того же самого mГ©todo onPostExecute(), так как ahГ - ты можешь реализовывать изменения в UI, или можешь производить объект или список объектов, чтобы быть использованными в algГєn другую точку в тебе aplicaciГіn:

protected void onPostExecute(Collection<Map<String,String>> collection) {
    for(Map<String,String> item : collection){
           TextViewTitulo.setText(item.get("title"));
    }
}
0
ответ дан 24.11.2019, 14:20
  • 1
    если это заканчивается мне очень хорошо textview, только, с которым я сталкиваюсь в, как бросать url " image" с json до imageview, так как imageview.setImageResource просит Int. – Aldo Gallardo 19.05.2016, 23:59
  • 2
    Если это url изображения, и ты хочешь поместить ее в ImageView, нужно загружаться или могут быть использованными другие выборы как Glide, Пикассо. Если у тебя есть проблемы, добавь вопрос об этом и кто-то поможет тебе. Nativamente должен быть setImageBitmap (), так как setImageResource (), поскольку Ваше имя это показывает, он старается читать ресурсов и должно быть int. – Jorgesys♦ 20.05.2016, 00:10

я получил решение благодаря маленьким Вам :)

я имею решение

protected void onPostExecute(Collection<Map<String,String>> collection) {
                    Log.d("HTTP",collection.toString());
        for(Map<String,String> elem : collection){
            Log.d("JSON",elem.get("title"));
            json.setText(elem.get("image"));
            //imagenjson.setImageBitmap(elem.get("image").toString());
            Picasso.with(MainActivity.this).load(elem.get("image")).into(imagenjson);

        }

    }

, вечно благодарные :) уже я вышел ему puntitos на Ваши ответы :)

0
ответ дан 24.11.2019, 14:20