Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 13.03.2013
Сообщений: 20

Свой listview с AsyncTask

04.10.2014, 02:39. Показов 1444. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, что не так делаю. При запуске приложения listview просто не отображается. Переменные все прошелся дебагером, значения имеются, адаптер также хранит данные.
Код MainActivity
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
public class MainListActivity extends ListActivity {
    private TextView myText;
    public ArrayList<ListData> catalog;
    Context context;
 
    @Override
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        new LoadNews().execute();
        context = this;
        myText=(TextView)findViewById(R.id.titleMain);
}
    public void onListItemClick(ListView parent, View v, int position, long id){
        Intent intent = new Intent(this, AboutActivity.class);
        intent.putExtra(AboutActivity.EXT_TextToShow, catalog.get(position).discribe);
        startActivity(intent);
    }
 
 
    class  LoadNews extends AsyncTask<Void,Void,Void>
    {
       public Document doc = null;
        ProgressDialog dialog;
        @Override
        protected Void doInBackground(Void... params) {
            try {
 
                doc = Jsoup.connect("http://www.fly4free.pl/").timeout(10000).get();
                Element e = doc.body();
 
                Elements alldivs=e.select("div.entry");
                catalog = new ArrayList<ListData>();
                for (int i = 1; i <alldivs.size(); i++) {
 
                    Element link = alldivs.get(i);
                    Element atom = link.getElementsByTag("a").first();
                    String url = atom.select("a[href]").attr("abs:href");
 
                    Element image = atom.select("img").first();
                    Uri ImageUrl = Uri.parse(image.absUrl("src"));
                    String title = image.attr("alt");
                    catalog.add(new ListData(title, ImageUrl, title));
                }
                } catch (IOException e1) {
                e1.printStackTrace();
            }
 
            return null;
        }
        @Override
        protected void onPostExecute(Void result) {
            CatalogAdapter catAdapter;
            catAdapter = new CatalogAdapter(context, catalog);
            setListAdapter(catAdapter);
 
           // MainListActivity.this.setListAdapter(catAdapter);
            Toast toast = Toast.makeText(getApplicationContext(), "Завершено", Toast.LENGTH_LONG);
            toast.show();
            dialog.dismiss();
        }
 
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            dialog = new ProgressDialog(MainListActivity.this);
            dialog.setMessage("Ждем поток ....");
            dialog.setIndeterminate(true);
            dialog.setCancelable(false);
            dialog.show();
        }
    }
   }
Код адаптера:
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
public class CatalogAdapter extends BaseAdapter{
    Context cont;
    LayoutInflater lInflater;
    ArrayList<ListData> objects;
 
    CatalogAdapter(Context context, ArrayList<ListData> mylist) {
        cont = context;
        objects = mylist;
        lInflater = (LayoutInflater) cont.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
 
    public int getCount() {
        return objects.size();
    }
 
    public Object getItem(int position) {
        return objects.get(position);
    }
 
    public long getItemId(int position) {
        return position;
    }
 
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = convertView;
        if (view == null) {
            view = lInflater.inflate(R.layout.list_item, parent, false);
        }
 
        ListData p = ((ListData) getItem(position));
 
        ((TextView) view.findViewById(R.id.textView1)).setText(p.title);
        ((TextView) view.findViewById(R.id.textView2)).setText("Описание "+p.discribe + " ");
        ((ImageView) view.findViewById(R.id.imageView1)).setImageURI(p.image);
        return view;
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.10.2014, 02:39
Ответы с готовыми решениями:

Заполнение ListView в AsyncTask
Нужно заполнить ListView картинками, которые скачиваются в AsyncTask с помощью Picasso. Картинки скачиваются нормально, ArrayList и...

Загрузка ListView после AsyncTask
В классе, который расшияет AsyncTask, занружаю данные из JSON и сохраняю в бд. При первом запуске апликации, список не выдаёт какого либо...

Как из AsyncTask Добавить элементы в ListView
В общем сабж. Используя адаптер как сделать?

2
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
04.10.2014, 22:33
Khorok, честно говоря, пока не увидел ошибок. Если у вас простой случай - заполнение TextView и ImageView - то можно и не создавать свой adapter. http://startandroid.ru/ru/urok... apter.html
Если, всё же, создаёте, как здесь: http://startandroid.ru/ru/urok... apter.html, то, может быть, стоит по-другому загружать adapter?
Java
1
2
ListView lvMain = (ListView) findViewById(R.id.lvMain);
lvMain.setAdapter(catAdapter);
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
06.10.2014, 15:37
Khorok, проверьте метод onPostExecute. У вас там нет super.onPostExecute(result);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.10.2014, 15:37
Помогаю со студенческими работами здесь

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

Свой список имён в ListView
У меня есть ListView и ArrayAdapter который наполнент ссылками на разные Intent. Как сделать чтобы пользователь видел в имени элемента...

Подключить к ListView свой layout
Нужно сделать список со своей разметкой элементов (simple_list_item_2, но с переключателем). Сделал свой файл с разметкой, но компилятор не...

AsyncTask
Использую AsyncTasc class MyT extends AsyncTask&lt;Void, Void, Void&gt; { @Override protected Void doInBackground(Void......

AsyncTask
Привет. Знаю, что в AsyncTask doInBackground() обращатся к компонентам UI нельзя. Когда я пытаюсь обновить вывод (в EditText) в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru