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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
dark-lord131
0 / 0 / 0
Регистрация: 27.06.2016
Сообщений: 4
#1

Jsoup - Android

27.06.2016, 17:35. Просмотров 164. Ответов 1
Метки нет (Все метки)

Помогите пожалуйста. При нажатии на строку с заголовком приложение вылетает. Подскажите в чем дело и как потом это исправить.
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
public class MainActivity extends AppCompatActivity {
 
    private ListView listView;
    private TextView textView;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        listView = (ListView) findViewById(R.id.listView);
        textView = (TextView) findViewById(R.id.textView);
        ParseTittle parseTittle = new ParseTittle();
        parseTittle.execute();
        try{
             final HashMap<String,String> hashMap = parseTittle.get();
             final ArrayList<String> arrayList = new ArrayList<>();
            for(Map.Entry entry : hashMap.entrySet()){
                arrayList.add(entry.getKey().toString());
            }
            ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(MainActivity.this
                    ,android.R.layout.simple_list_item_1,arrayList);
            listView.setAdapter(arrayAdapter);
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    ParseText parseText = new ParseText();
                    parseText.execute(hashMap.get(arrayList.get(position)));
                    try{
                        listView.setVisibility(View.GONE);
                        textView.setText(parseText.get());
                    } catch (InterruptedException e){
                        e.printStackTrace();
                    } catch (ExecutionException e){
                        e.printStackTrace();
                    }
                }
            });
        } catch (InterruptedException e){
            e.printStackTrace();
        } catch (ExecutionException e){
            e.printStackTrace();
        }
    }
 
    @Override
    public void onBackPressed() {
        listView.setVisibility(View.VISIBLE);
        textView.setVisibility(View.GONE);
    }
 
    class ParseText extends AsyncTask<String,Void,String>{
 
        @Override
        protected String doInBackground(String... params) {
            String str = " ";
            try {
                Document document = Jsoup.connect(params[0]).get();
                Element element = document.select("news_id").first();
                str = element.text();
            } catch (IOException e){
                e.printStackTrace();
            }
            return str;
        }
    }
 
    class ParseTittle extends AsyncTask<Void,Void,HashMap<String,String>>{
 
        @Override
        protected HashMap<String, String> doInBackground(Void... params) {
            HashMap<String,String> hashMap = new HashMap<>();
            try {
                Document document = Jsoup.connect("http://khl24.ru/news/").get();
                Elements elements = document.select(".news ul li a");
                for (Element element : elements){
                    Element element1 = element.select("a[href]").first();
                    hashMap.put(element.text(),element1.attr("abs:href"));
                }
            } catch (IOException e){
                e.printStackTrace();
            }
 
            return hashMap;
        }
    }
}
Лог ошибки
Кликните здесь для просмотра всего текста

FATAL EXCEPTION: AsyncTask #2
Process: com.example.alex2.myapplication, PID: 18245
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:300)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.jsoup.nodes.Element.text()' on a null object reference
at com.example.alex2.myapplication.MainActivity$ParseText.doInBackground(MainActivity.java:83)
at com.example.alex2.myapplication.MainActivity$ParseText.doInBackground(MainActivity.java:75)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)*
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)*
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)*
at java.lang.Thread.run(Thread.java:818)*
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2016, 17:35     Jsoup
Посмотрите здесь:

Android Parsing with Jsoup
jsoup Android
Android AsyncTask и Jsoup
Jsoup парс Android
Jsoup и https Android
Передача с webview в jsoup Android
Jsoup парсим сайт Android
Android Что такое Jsoup?
Jsoup получить элемент Android
Авторизация через jsoup Android
Парсинг на jsoup Android
Android WebView + JSOUP

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
29.06.2016, 20:57     Jsoup #2
elements у вас нуль скорее всего, проверьте тег 'news ul li a'.
Yandex
Объявления
29.06.2016, 20:57     Jsoup
Ответ Создать тему
Опции темы

Текущее время: 14:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru