Форум программистов, компьютерный форум CyberForum.ru

Get запрос с выводом полученной информации на экран - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Как можно узнать может ли супер класс кастануться в субкласс http://www.cyberforum.ru/android-dev/thread1652759.html
В общем, у меня есть класс Диета, который состоит из Рационов, которые состоят из приемов пищи, которые состоят из продуктов и все они наследуются от абстрактного класса, который содержит в себе методы по вычислению калорий и нутриентов(белки, жиры, углеводы) получается своего рода многомерный массив в основе которого лежит продукт. Так вот сейчас у меня только 2 вопроса, 1-ый главный ибо я хочу...
Android Сортировка кнопок по названию (номерам) Здравствуйте, подскажите пожалуйста в чем проблема и как из нее выйти: есть ArrayList кнопок, у них названия - случайные номера, когда я пытаюсь отсортировать их через Comparator compare и Collections.sort то в итоге сортируется по порядку но странно : сначала первые цифры а потом уже вторые, т.е пример : 1,10,11...,2,20,21,22,...3,30,31,32 и т.д вот код метода public int compare(Button... http://www.cyberforum.ru/android-dev/thread1652705.html
Android Vk-android-sdk
Всем доброго дня! Вопрос связан с Android SDK для vk. Собственно ошибка у меня появляется в момент авторизации {"error":"invalid_client","error_description":"client_id incorrect"} Все делал как описано в документации https://vk.com/dev/android_sdk
Не видно DrawerLayout Android
Здравствуйте! Помоги разобраться с DrawerLayout. Весь код на скринах 1-3. Проблема в отображении, а точнее не отображения DrawerLayout. На скринах 4-5 видно что DrawerLayout есть,только при нажатии не отображается.
Android Зашифровать Sqlite http://www.cyberforum.ru/android-dev/thread1652529.html
Привет. Приложение активно работает со своей базой, хранит много данных. Я хотел бы зашифровать все таблицы в моей базе но при этом, чтобы для приложения это было менее затратно, ну допустим вся логика осталась работы с базой, а вызывать дополнительный метод для шифровки и дешифровки. Посоветуйте, подскажите, спасибо.
Android Способы разработки игр Тема трололо Фирма занимающаяся разработкой игр кого предпочтет, человека умеющего пользовать какой либо игровой движок или обычно они сами пишут себе движки свои-собственные? подробнее

Показать сообщение отдельно
Паблито
резкий
1954 / 1689 / 524
Регистрация: 12.05.2014
Сообщений: 6,035
Завершенные тесты: 1
01.02.2016, 20:18     Get запрос с выводом полученной информации на экран
Я могу показать как делать с помощью okhttp client-а. Мне так привычнее.
Внимательно по шагам.

1. Подключаем библиотеки okhttp и gson (для парсинга json строки в объект)
в файле build.gradle дописываем
XML
1
2
compile 'com.google.code.gson:gson:1.7.2'
compile 'com.squareup.okhttp3:okhttp:3.0.0-RC1'
2. Создаем класс-модель для ответа от сервера. В код этого класса можно сильно не вчитываться, там по сути несколько полей, а остальное это геттеры-сеттеры.
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
class AkulovResponse {
 
    private String status;
    private Discounts[] discounts;
 
    public String getStatus() {
        return status;
    }
 
    public void setStatus(String status) {
        this.status = status;
    }
 
    public Discounts[] getDiscounts() {
        return discounts;
    }
 
    public void setDiscounts(Discounts[] discounts) {
        this.discounts = discounts;
    }
 
    static class Discounts {
        private String id;
 
        private String end_date;
 
        private String discount_text;
 
        private String start_date;
 
        private String customer_id;
 
        public String getId() {
            return id;
        }
 
        public void setId(String id) {
            this.id = id;
        }
 
        public String getEnd_date() {
            return end_date;
        }
 
        public void setEnd_date(String end_date) {
            this.end_date = end_date;
        }
 
        public String getDiscount_text() {
            return discount_text;
        }
 
        public void setDiscount_text(String discount_text) {
            this.discount_text = discount_text;
        }
 
        public String getStart_date() {
            return start_date;
        }
 
        public void setStart_date(String start_date) {
            this.start_date = start_date;
        }
 
        public String getCustomer_id() {
            return customer_id;
        }
 
        public void setCustomer_id(String customer_id) {
            this.customer_id = customer_id;
        }
    }
}


3. Как уже правильно сказали выше, операции с сетью надо делать в отдельном потоке, поэтому создаем в активити метод makeRequest()
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    private void makeRequest(final String url) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                OkHttpClient client = new OkHttpClient();
                Request request = new Request.Builder().url(url).build();
                try {
                    Response response = client.newCall(request).execute();
                    Gson gson = new Gson();
                    AkulovResponse akulovResponse = gson.fromJson(response.body().string(), AkulovResponse.class);
                    printResult(akulovResponse);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }
Можно было сделать и на асинк таске, но пока что и так пойдет, кода меньше и проще.

4. создаем в активти метод, который вызовется когда наша задача отработает и вернет нам готовый объект
Java
1
2
3
4
5
6
7
8
9
    private void printResult(AkulovResponse response) {
        Log.i("***", response.getStatus());
        AkulovResponse.Discounts[] discounts = response.getDiscounts();
        Log.i("***", "" + discounts.length);
        if (discounts.length > 0) {
            String text = discounts[0].getDiscount_text();
            Log.i("***", text);
        }
    }
5. вызываем метод, где-то в onCreate()
Java
1
makeRequest("http://www.akulov.xyz/discounts/b9407f30f5f8466eaff925556b57fe6d");
6. PROFIT

Добавлено через 8 минут
поправочка, там текст description в BASE64, поэтому метод printResult немного изменить
Java
1
2
3
4
5
6
7
8
9
10
11
    private void printResult(AkulovResponse response) throws UnsupportedEncodingException {
        Log.i("***", response.getStatus());
        AkulovResponse.Discounts[] discounts = response.getDiscounts();
        Log.i("***", "" + discounts.length);
        if (discounts.length > 0) {
            String text = discounts[0].getDiscount_text();
            byte[] data = Base64.decode(text, Base64.DEFAULT);
            text = new String(data, "UTF-8");
            Log.i("***", text);
        }
    }
 
Текущее время: 19:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru