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

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

Войти
Регистрация
Восстановить пароль
 
agarasul1
0 / 0 / 0
Регистрация: 07.07.2016
Сообщений: 3
#1

Must supply a valid URL Jsoup - Программирование Android

08.07.2016, 10:03. Просмотров 338. Ответов 0

Вот мой код:
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_import, container, false);
    //Button fragbut = (Button) rootView.findViewById(R.id.fragbut);
    listView4 = (ListView) rootView.findViewById(R.id.listView999);
    textView4 = (TextView) rootView.findViewById(R.id.textView4);
    textView5 = (TextView) rootView.findViewById(R.id.textView5);
    adapter = new ArrayAdapter<String>(getActivity(), R.layout.fragment_import, R.id.textView3, titleList);
    newThread newThread1 = new newThread();
    newThread1.execute();
 
    try {
        final HashMap<String,String> hashMap = newThread1.get();
        for (Map.Entry entry : hashMap.entrySet())
        {
            titleList.add(entry.getKey().toString());
        }
 
        listView4.setAdapter(adapter);
        listView4.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
 
                Parsetext parsetext = new Parsetext();
                parsetext.execute(hashMap.get(titleList.get(position)));
                try {
                    textView4.setText(parsetext.get());
                   // Intent intent = new Intent(getActivity(), MainActivity.class);
                   // startActivity(intent);
                    listView4.setVisibility(View.GONE);
 
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } catch (ExecutionException e) {
                    e.printStackTrace();
                }
            }
        });
    } catch (InterruptedException e) {
        e.printStackTrace();
    } catch (ExecutionException e) {
        e.printStackTrace();
    }
 
 
 
 
    return rootView;
 
}
    // fragbut.setOnClickListener(this);
 
    // ParseTitle parseTitle = new ParseTitle();
    //  parseTitle.execute();
 
 
    // TODO: Rename method, update argument and hook method into UI event
 
public void onButtonPressed(Uri uri) {
    if (mListener != null) {
 
        mListener.onFragmentInteraction(uri);
    }
}
 
 
@Override
public void onDetach() {
    super.onDetach();
    mListener = null;
}
 
int translateIdToIndex(int id) {
    int index = -1;
 
    return index;
}
 
@Override
public void onClick(View v) {
 
 
    int buttonIndex = translateIdToIndex(v.getId());
 
    Toast.makeText(getActivity(), String.valueOf(buttonIndex),
            Toast.LENGTH_SHORT).show();
}
 
public interface OnSelectedButtonListener {
    void onButtonSelected(int buttonIndex);
}
 
class Parsetext extends AsyncTask<String,Void,String>{
    @Override
    protected String doInBackground(String... params) {
        String str = " ";
        try {
            Document doc = Jsoup.connect(params[0]).get();
            Elements element = doc.select(".news_content");
            str = element.text();
        } catch (IOException e) {
            e.printStackTrace();
        }
 
        return str;
    }
}
 
class newThread extends AsyncTask<Void, Void, HashMap<String,String>> {
 
    @Override
    protected HashMap<String,String> doInBackground(Void... params) {
 
 
        HashMap<String,String> hashMap = new HashMap<>();
        try {
            Document doc = Jsoup.connect("http://gapp.az/").get();
            content = doc.select(".feed_desc");
            titleList.clear();
            for (Element contents : content) {
                Elements contents1 = contents.select("a[href]");
                hashMap.put(contents.text(),contents1.attr("abs:href"));
                titleList.add(contents.text());
            }
 
        } catch (IOException e) {
            e.printStackTrace();
        }
        return hashMap;
    }
}
Вот лог:
Caused by: java.lang.IllegalArgumentException: Must supply a valid URL at org.jsoup.helper.Validate.notEmpty(Validate.java:102) at org.jsoup.helper.HttpConnection.url(HttpConnection.java:72) at org.jsoup.helper.HttpConnection.connect(HttpConnection.java:36) at org.jsoup.Jsoup.connect(Jsoup.java:73) at com.example.adm.lifehacker.fragment.FragmentImport$Parsetext.doInBackground(FragmentImport.java:195) at com.example.adm.lifehacker.fragment.FragmentImport$Parsetext.doInBackground(FragmentImport.java:190)
Заголовки статей нормально загружаются. Проблема в том что не могу определить ссылку нажатой статьи

И еще в
Document doc = Jsoup.connect(params[0]).get();
params[0]
пустой

Добавлено через 39 секунд
Здесь на форуме пролистал пару страниц, но не нашел то что мне надо
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2016, 10:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Must supply a valid URL Jsoup (Программирование Android):

Как в jsoup получить абсолютный URL? - Программирование Android
Приветствую всех! прошу помощи в получении ссылки, на некоторой странице с адресом напр.:...

Jsoup - Программирование Android
Помогите пожалуйста. При нажатии на строку с заголовком приложение вылетает. Подскажите в чем дело и как потом это исправить. public...

jsoup - Программирование Android
Здрасьте. Вопрос по поводу этой замечательной библиотеке:) Есть html следующего содержания: &lt;span class=&quot;aaa&quot;&gt;Всем привет!&lt;br /&gt; ...

Парсинг на jsoup - Программирование Android
Добрый всем день! Заминка такая, уже весь гугл перелопатил, синих ссылок в браузере не осталось. Есть пример парсинга сайта: import...

AsyncTask и Jsoup - Программирование Android
Не работает вот такой код: package com.example.projecta; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import...

Parsing with Jsoup - Программирование Android
Итак, пробую написать очень простое тестовое приложение, для чтения html-файлов. Вот файл JsoupDemoActivity.java: package...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2016, 10:03
Привет! Вот еще темы с ответами:

WebView + JSOUP - Программирование Android
Добрый день. Приложение падает с ошибкой. Подскажи, пожалуйста, в чем причина? 10-06 21:30:52.489 26025-26048/? E/AndroidRuntime﹕...

Jsoup и https - Программирование Android
Здравствуйте есть вопрос. Есть сайт на https на котором нужно залогиниться чтобы получить инфу. вопрос в том как с этим работать с...

JSOUP парсинг - Программирование Android
Код парсит в textView1 с сайта class=&quot;30&quot; Как переписать/дописать код, чтоб он парсил еще и в textView2 класс=&quot;31&quot; Классы 30, 31 на...

Jsoup парс - Программирование Android
Здравствуйте такой вопрос есть сайт который в наличие есть скрипт ... &lt;td class=&quot;time&quot;&gt; &lt;span...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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