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

Беда с парсингом

26.11.2015, 00:48. Показов 704. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в приложении при запуске в onCreate, должны динамически создаваться кнопки исходя из количества эл-то String [], этот массив возвращается в результате метода парсинга сайта новостей. Метод рабочий, проверял в java SE приложении. при запуске выдаёт ошибку, не могу понять причины
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
  protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
 
        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
        try {
            News_Parsing newsParsing=new News_Parsing();
            Document doc = Jsoup.connect("http://ria.ru/export/rss2/politics/index.xml").timeout(5000).get();
            Elements news = doc.select("item title");
            Title=new String[newsParsing.parsingTitle(news).length];
            Title=newsParsing.parsingTitle(news);
 
        //Elements news = doc.select("ss");
        lMain=(LinearLayout)  findViewById(R.id.lMain);
       // z=new int[20];
        newBtn=new Button[Title.length];
        for(int k = 0; k < Title.length; k++){
            newBtn[k] = new Button(this);
            newBtn[k].setText(Title[k]);
            // button.setOnClickListener(listener);
            newBtn[k].setId(View.generateViewId());
            newBtn[k].setOnClickListener(this);
            lMain.addView(newBtn[k], 200, 500);
        }}
        catch (IOException e){
            e.printStackTrace();
        }
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.11.2015, 00:48
Ответы с готовыми решениями:

Беда с eclipse
Всем привет. Вот, решил научиться программировать под андройд. Начал, естественно, с того, что зашёл на developer.android.com. Вроде...

Беда с приложением
Разрабатываю приложение, игру вернее. Замысел такой: при клике на экран создаётся объект (картинка) существо и движется в сторону...

Беда с парсингом
Суть проблемы, и непонятка вот в чем, есть сайт риа-новости, необходимо вытащить некоторые эл-ты. Если в браузере просмотреть код страницы,...

5
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
26.11.2015, 01:11
Tro0P, нельзя обращаться в сеть в основном потоке. Используй AsyncTask
1
0 / 0 / 0
Регистрация: 14.11.2015
Сообщений: 24
29.11.2015, 18:28  [ТС]
переделал след. образом
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
 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
 
        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
 
        lMain=(LinearLayout) findViewById(R.id.lMain);
        scroll=(ScrollView) findViewById(R.id.scroll);
        new AsyncT().execute();
 
    }
 
    @Override
    public void onClick(View v) {
        for (int i=0;i<button.length;i++){
            if(v.getId()==button[i].getId()){
                button[i].setText(""+i);
            }
        }
 
    }
 
    class AsyncT extends AsyncTask<Void,Void,Void> {
        @Override
        protected Void doInBackground(Void... params) {
            return null;
        }
 
        protected void onPostExecute (Void result){
            Document doc;
            doc=null;
            try{
                doc = Jsoup.connect("http://ria.ru/export/rss2/politics/index.xml").timeout(5000).get();
            } catch (IOException e){
                e.printStackTrace();
            }
            Elements news=doc.select("title");
            newsPars=new NewsPars();
            title=newsPars.parsingTitle(news);
            title=newsPars.parsingTitle(news);
            for (int i=0;i<title.length;i++){
                button=new Button[title.length];
                button[i]=new Button(pc.vorgul.testnewsparser.MainActivity.this);
                button[i].setText(title[i]);
                button[i].setId(View.generateViewId());
                button[i].setOnClickListener(pc.vorgul.testnewsparser.MainActivity.this);
                lMain.addView(button[i],200,200);
            }
        }
    }
ошибка выскакивает на строке
Java
1
 doc = Jsoup.connect("http://ria.ru/export/rss2/politics/index.xml").timeout(5000).get();
выбрасывается исключение android.os.NetworkOnMainThreadException, подскажите как решить проблему
0
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
29.11.2015, 18:35
Jsoup.connect нужно вызывать в doInBackground
0
 Аватар для dajver
411 / 275 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
29.11.2015, 18:42
Цитата Сообщение от Mikalai Посмотреть сообщение
Jsoup.connect нужно вызывать в doInBackground
Да по сути перенести весь код в doInBackground
0
0 / 0 / 0
Регистрация: 14.11.2015
Сообщений: 24
29.11.2015, 18:58  [ТС]
переделал так:
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
 class AsyncT extends AsyncTask<Void,Void,Void> {
        @Override
        protected Void doInBackground(Void... params) {
            doc=null;
            try{
                doc = Jsoup.connect("http://ria.ru/export/rss2/politics/index.xml").timeout(5000).get();
            } catch (IOException e){
                e.printStackTrace();
            }
            return null;
        }
 
        protected void onPostExecute (Void result){
           /* Document doc;
            doc=null;
            try{
                doc = Jsoup.connect("http://ria.ru/export/rss2/politics/index.xml").timeout(5000).get();
            } catch (IOException e){
                e.printStackTrace();
            }*/
            Elements news=doc.select("title");
            newsPars=new NewsPars();
            title=newsPars.parsingTitle(news);
            title=newsPars.parsingTitle(news);
            for (int i=0;i<title.length;i++){
                button=new Button[title.length];
                button[i]=new Button(pc.vorgul.testnewsparser.MainActivity.this);
                button[i].setText(title[i]);
                button[i].setId(View.generateViewId());
                button[i].setOnClickListener(pc.vorgul.testnewsparser.MainActivity.this);
                lMain.addView(button[i],200,200);
            }
        }
    }

Добавлено через 11 минут
разобрался, в андроид манифесте не был разрешен доступ к интернету.
Сори за глупые ошибки) по сути первое приложение делаю, спасибо за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.11.2015, 18:58
Помогаю со студенческими работами здесь

Запрет на смену символьного кода, Беда, такая беда 1с
С первым днем весны..и новыми проблемами.. Суть: Из 1с при импорте приходят категории/товары которые изменяют название...

Помогите с парсингом С++!!!
Народ помогите с парсингом я в этом деле жесткий нуб скиньте ссылки на книжки какие-нибудь где есть что то на эту тему буду благодарен!!!

Помогите с парсингом
Есть страничка &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge,chrome=1&quot;/&gt; &lt;title&gt;Андер...

Невыходит с парсингом
Всем доброй ночи, прошу помощи. Не пойму почему file_get_contents говорит - &quot;не удалось открыть поток&quot; Ведь ссылка такая есть и...

Запар с парсингом
Всем привет. Такой вопрос..написал парсер, все работает, но вот проблема в том, что в таблице он парсит только верхнюю строчку, а все...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru