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

Загрузка текста и картинки в listView с AsyncTask - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Как загрузить видео при старте Activity? http://www.cyberforum.ru/android-dev/thread1486631.html
Всем привет. Возможно этот вопрос покажется для кого-то простым и не уместным, но так как я только начинаю заниматься Андройдом я никак не могу его решить. Проблема в следующем... как сделать так, чтобы при включении программы загружалось вот это видео ("http://195.62.145.172/elem/animal/playlist.m3u8") Заранее спасибо. package com.google.android.exoplayer.demo; import...
Программирование Android Отправка сообщения в Skype из приложения Как отправить в скайп сообщение из моего приложения??Что для этого нужно сделать?? Можете обьяснить вкратце или если это не сложно приложить небольшой фрагмент кода отправки сообщения в скайп?? http://www.cyberforum.ru/android-dev/thread1486605.html
Backend для мобильного приложения Программирование Android
Пишу приложение, требуется backend. Использовал parse.com, но скорость работы оставляет желать лучшего. Поэтому принял решение разработать свой сервер, до этого никогда этим не занимался. Определил технологии, которые нужно изучить. Скажите все ли я правильно понял и учет: 1. Буду использовать mvc spring framework, тут вроде все ясно 2. Сервер tomcat. А что потом? Какие мои действия, когда...
Приложения на C++, Delphi под Android Программирование Android
Доброго всем дня. Прошу поделиться знаниями и опытом использования языков программирования отличных от Java. А вопрос в том, не возникает ли проблем совместимости при запуске приложений на устройствах с различной процессорной архитектурой? Ведь Java язык-интерпретатор и JVM реализует запуск на любом процессоре. А как обстоят дела с языками-компиляторами? Например приложение скомпилированное и...
Программирование Android Получить token от менеджера аккаунтов http://www.cyberforum.ru/android-dev/thread1486164.html
Кто может розживать код http://findevelop.blogspot.ru/2012/05/oauth2-android.html Как получить Token и записать его в БД. В примере используются какойто код с отсроченным выполением при попытке словить токен с главного класса строка в БД остается пустой
Программирование Android Работа с файлами Всем привет, мне нужно по нажатию на кнопку получить окно с музыкой на телефоне. Кто-нибудь может помочь? может быть есть какой то класс и т.д. подробнее

Показать сообщение отдельно
Hmmer
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 11

Загрузка текста и картинки в listView с AsyncTask - Программирование Android

25.06.2015, 16:02. Просмотров 1097. Ответов 8
Метки (Все метки)

Привет всем. Имеется файл в формате JSON на удалённом сервере. Мне нужно вывести текст из определённых узлов файла и картинки по указанным в файле ссылкам.

JSON
1
2
{"success":1,"products":[{"id":"956","name":"\u041c\u044f\u0447 ","price":"29.0000","description":"","image_url":"http:\/\/..../1711.750x0.jpg"},{"id":"955","name":"\u0416\u0435\u043d\u0441\u043a\u0430\u044f \u0444\u0443\u0442\u0431\u043e\u043b\u043a\u0430 (Allianz)","price":"110.5000","description":"\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b: CLIMACOOL\u00ae, 100% \u043f\u043e\u043b\u0438\u044d\u0441\u0442\u0435\u0440","image_url":"http:\/\/.../1709.750x0.jpg"},{"id":"954","name":"\u0422\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u043e\u0447\u043d\u0430\u044f \u043a\u043e\u0444\u0442\u0430 15\/16","price":"91.0000","description":"
100% \u043f\u043e\u043b\u0438\u044d\u0441\u0442\u0435\u0440<\/p>","image_url":"http:\/\/.../1706.750x0.jpg"}]}
Нашёл в интеренте примеры, только вот дела все примеры делают чтото одно, либо текст, либо картинку. Попытался както допилить. Но увы познаний не хватает. Вот код:
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
public class MainActivity extends Activity {
 
    // Создаем объект JSON Parser
    JSONParser jParser = new JSONParser();
 
 
    private static String url_all_products = "http://.../test.php";
    // Имена узлов JSON
    private static final String TAG_SUCCESS = "success";
    private static final String TAG_PRODUCTS = "products";
    private static final String TAG_PID = "id";
    private static final String TAG_NAME = "name";
    private static final String TAG_IMAGE = "image_url";
    // массив товаров JSONArray
    JSONArray products = null;
 
 
 
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
// Загружаем товары в другом потоке
        new LoadAllProductsTask().execute();
 
 
        ArrayList<ListItem> listData = getListData();
 
        final ListView listView = (ListView) findViewById(R.id.custom_list);
        listView.setAdapter(new CustomListAdapter(this, listData));
        listView.setOnItemClickListener(new OnItemClickListener() {
 
            @Override
            public void onItemClick(AdapterView<?> a, View v, int position, long id) {
                ListItem newsData = (ListItem) listView.getItemAtPosition(position);
                Toast.makeText(MainActivity.this, "Selected :" + " " + newsData, Toast.LENGTH_LONG).show();
            }
        });
    }
 
    private ArrayList<ListItem> getListData() {
        ArrayList<ListItem> listMockData = new ArrayList<ListItem>();
 
 
        String[] images = getResources().getStringArray(R.array.images_array);
        String[] headlines = getResources().getStringArray(R.array.headline_array);
 
        for (int i = 0; i < images.length; i++) {
            ListItem newsData = new ListItem();
            newsData.setUrl(images[i]);
            newsData.setHeadline(headlines[i]);
            newsData.setReporterName("Папарацци");
            newsData.setDate("May 26, 2013, 13:35");
            listMockData.add(newsData);
        }
        return listMockData;
    }
 
 
    // Задача в другом потоке для загрузки всех товаров через HTTP Request
    class LoadAllProductsTask extends AsyncTask<String, String, String> {
 
 
 
        // получим все товары через url
        protected String doInBackground(String... args) {
            // Строим параметры
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            // получим строку JSON из URL
            JSONObject json = jParser.makeHttpRequest(url_all_products, "GET",
                    params);
 
            // Check your log cat for JSON reponse
            //Log.d("All Products: ", json.toString());
 
            try {
                // Проверяем переменную SUCCESS TAG
                int success = json.getInt(TAG_SUCCESS);
 
                if (success == 1) {
                    // товар найден
                    // получаем массив товаров
                    products = json.getJSONArray(TAG_PRODUCTS);
 
                    // проходим в цикле через все товары
                    for (int i = 0; i < products.length(); i++) {
                        JSONObject c = products.getJSONObject(i);
 
 
 
 
 
 
                        Log.d("Продукт ID: ", c.getString(TAG_PID));
 
 
                    }
 
                } else {
                    // ничего не найдено
 
 
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
 
            return null;
        }
 
 
    }
 
 
}
как мне получить данные внутри getListData() из LoadAllProductsTask? Если кому не трудно допишите или исправте код. Ничего не получается. В гугл не посылайте несколько дней рыл, и примера так и не нашёл.
Лог выводит как положено ID продуктов.
Пример вывода листа берёт ссылки на картинки и тексты из двух array в файле strings.xml, а мне надо из удалённого json файла.

Добавлено через 22 часа 38 минут
Я так понимаю, что либо я чушь написал, либо уже есть решение, но никто подсказать не хочет. Хоть бы ткнули носом где есть пример или сказали бы что совсем не в ту степь меня вообще понесло.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru