Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
fruitcake
0 / 0 / 0
Регистрация: 05.06.2013
Сообщений: 1
1

Вывод Elements в списке. Jsoup

09.06.2013, 06:28. Просмотров 1096. Ответов 2
Метки нет (Все метки)

Здравствуйте!
Я только начал изучать программирование под Android. Пробовал выводить список, по одному из уроков, и тем на этом сайте. Приложение выдает ошибку.

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
package com.example.projecta;
 
import java.io.IOException;
 
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
 
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
 
public class MainActivity extends Activity {
    MyTask mt;
    TextView tvInfo;
    ListView lv;
    private static final String TAG = "myLogs";
 
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tvInfo = (TextView) findViewById(R.id.tvInfo);
        lv = (ListView) findViewById(R.id.ListView1);
    }
 
    public void onclick(View v) {
        mt = new MyTask();
        mt.execute();
        Log.d(TAG, "0");
    }
 
    class MyTask extends AsyncTask<String, Void, Elements> {
 
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            tvInfo.setText("Begin");
        }
 
        protected Elements doInBackground(String... links) {
            Document doc = null;
            try {
                doc = Jsoup.connect("http://www.oilcapital.ru/data/rss_common.php").get();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            Elements els = doc.select("item");
            
            return els;
        }
 
        protected void onPostExecute(Elements result) {
            super.onPostExecute(result);
            String[] arrayStr = new String[result.size()];
            for (int i = 0; i < arrayStr.length; i++) {
                arrayStr[i] = (result).get(i).toString();
            }
            ArrayAdapter<String> aa = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1, arrayStr);
            lv.setAdapter(aa);
            Toast toast = Toast.makeText(getApplicationContext(), "Завершено",
            Toast.LENGTH_LONG);
            toast.show();
        }
 
    }
}
ошибка (не подключает даже если поменять адрес сайта):

Кликните здесь для просмотра всего текста
06-09 03:17:52.328: D/dalvikvm(1373): GC_FOR_ALLOC freed 44K, 2% free 8791K/8963K, paused 62ms
06-09 03:17:52.537: D/dalvikvm(1373): GC_CONCURRENT freed 1K, 2% free 9291K/9479K, paused 5ms+3ms
06-09 03:17:58.259: D/myLogs(1373): 0
06-09 03:17:58.307: W/System.err(1373): java.net.UnknownHostException: Unable to resolve host "www.oilcapital.ru": No address associated with hostname
06-09 03:17:58.317: W/System.err(1373): at java.net.InetAddress.lookupHostByName(InetAddress.java:496)
06-09 03:17:58.317: W/System.err(1373): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:277)
06-09 03:17:58.317: W/System.err(1373): at java.net.InetAddress.getAllByName(InetAddress.java:249)
06-09 03:17:58.317: W/System.err(1373): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:69)
06-09 03:17:58.317: W/System.err(1373): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:48)
06-09 03:17:58.317: W/System.err(1373): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection$Address.connect(HttpConnection.java:304)
06-09 03:17:58.327: W/System.err(1373): at org.apache.harmony.luni.internal.net.http://www.protocol.http.HttpConnect...onPool.java:89)
06-09 03:17:58.327: W/System.err(1373): at org.apache.harmony.luni.internal.net.http://www.protocol.http.HttpURLConn...nImpl.java:292)
06-09 03:17:58.327: W/System.err(1373): at org.apache.harmony.luni.internal.net.http://www.protocol.http.HttpURLConn...nImpl.java:274)
06-09 03:17:58.327: W/System.err(1373): at org.apache.harmony.luni.internal.net.http://www.protocol.http.HttpURLConn...nImpl.java:217)
06-09 03:17:58.327: W/System.err(1373): at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:425)
06-09 03:17:58.337: W/System.err(1373): at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:410)
06-09 03:17:58.337: W/System.err(1373): at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:164)
06-09 03:17:58.337: W/System.err(1373): at org.jsoup.helper.HttpConnection.get(HttpConnection.java:153)
06-09 03:17:58.337: W/System.err(1373): at com.example.projecta.MainActivity$MyTask.doInBackground(MainActivity.java:50)
06-09 03:17:58.337: W/System.err(1373): at com.example.projecta.MainActivity$MyTask.doInBackground(MainActivity.java:1)
06-09 03:17:58.337: W/System.err(1373): at android.os.AsyncTask$2.call(AsyncTask.java:252)
06-09 03:17:58.337: W/System.err(1373): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
06-09 03:17:58.347: W/System.err(1373): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
06-09 03:17:58.347: W/System.err(1373): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1081)
06-09 03:17:58.347: W/System.err(1373): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:574)
06-09 03:17:58.347: W/System.err(1373): at java.lang.Thread.run(Thread.java:1020)
06-09 03:17:58.371: W/dalvikvm(1373): threadid=9: thread exiting with uncaught exception (group=0x40014760)
06-09 03:17:58.389: E/AndroidRuntime(1373): FATAL EXCEPTION: AsyncTask #1
06-09 03:17:58.389: E/AndroidRuntime(1373): java.lang.RuntimeException: An error occured while executing doInBackground()
06-09 03:17:58.389: E/AndroidRuntime(1373): at android.os.AsyncTask$3.done(AsyncTask.java:266)
06-09 03:17:58.389: E/AndroidRuntime(1373): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
06-09 03:17:58.389: E/AndroidRuntime(1373): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
06-09 03:17:58.389: E/AndroidRuntime(1373): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
06-09 03:17:58.389: E/AndroidRuntime(1373): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
06-09 03:17:58.389: E/AndroidRuntime(1373): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1081)
06-09 03:17:58.389: E/AndroidRuntime(1373): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:574)
06-09 03:17:58.389: E/AndroidRuntime(1373): at java.lang.Thread.run(Thread.java:1020)
06-09 03:17:58.389: E/AndroidRuntime(1373): Caused by: java.lang.NullPointerException
06-09 03:17:58.389: E/AndroidRuntime(1373): at com.example.projecta.MainActivity$MyTask.doInBackground(MainActivity.java:55)
06-09 03:17:58.389: E/AndroidRuntime(1373): at com.example.projecta.MainActivity$MyTask.doInBackground(MainActivity.java:1)
06-09 03:17:58.389: E/AndroidRuntime(1373): at android.os.AsyncTask$2.call(AsyncTask.java:252)
06-09 03:17:58.389: E/AndroidRuntime(1373): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
06-09 03:17:58.389: E/AndroidRuntime(1373): ... 4 more
06-09 03:18:00.677: I/Process(1373): Sending signal. PID: 1373 SIG: 9


Добавлено через 17 минут
Попробовал немного по другому написать, вроде бы все работает. Как это вывести списком?

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
132
133
134
135
136
137
package com.ulyanov.tryme;
 
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
 
import android.content.Intent;
 
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
 
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.util.Log;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.content.Intent;
 
public class MainActivity extends Activity {
 
    MyTask mt;
      TextView tvInfo;
      ListView lv;
      private static final String TAG = "myLogs";
     
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv = (ListView) findViewById(R.id.ListView1);
                
// ищем TextView
        tvInfo = (TextView) findViewById(R.id.newsTx);
        
        File input = new File(Environment.getExternalStorageDirectory(),
                "/Folder/file.xml");
        Document docnew=null;
        try {
             docnew = Jsoup.parse(input, "UTF-8");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        String fileOuter= docnew.html();
        tvInfo.setText(fileOuter);
    //Elements link = docnew.select("item");
      //  String linkOuterH = link.outerHtml();
        tvInfo.setText(fileOuter);
    }
    
    
    
     //КОНЕЦ ONCREATE
//********* Обработчик нажания кнопки********************************
    public void onclick(View v) {
        mt = new MyTask();
        mt.execute();
        Log.d(TAG, "0");
    }
//*******************************************************************       
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    //Асинхронный поток ****************************************888 
    class MyTask extends AsyncTask<String,Void, Elements> {
         
        @Override
        protected void onPreExecute() {
          super.onPreExecute();
          tvInfo.setText("Begin");
        }
     
        protected Elements doInBackground(String... links) {
           //Получаем элементы типа item*************************************
            Document doc = null;
                        try {
                            doc = Jsoup.connect("http://www.oilcapital.ru/data/rss_common.php").get();
                    } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        Elements els = doc.select("item");
                        
                     return els;
                 }
             // String fileOuter= doc.html();
            //Elements link = doc.select("item");
            //String linkOuterH = link.outerHtml(); 
          
                
                
          // ************************************************************   
          //return linkOuterH  ;
          //    return fileOuter;
            
      protected void onPostExecute(Elements result) {
          super.onPostExecute(result);
          String[] arrayStr = new String[result.size()];
          for (int i = 0; i < arrayStr.length; i++) {
              arrayStr[i] = (result).get(i).toString();
          }
          ArrayAdapter<String> aa = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1, arrayStr);
          lv.setAdapter(aa);
          Toast toast = Toast.makeText(getApplicationContext(), "Завершено",
          Toast.LENGTH_LONG);
          toast.show();
      }
        
            "Текстовый файл записан", Toast.LENGTH_LONG).show();
        }             
    
    public void GoToNewsDetailed(View v)
    {
        switch (v.getId()) 
        {
            case R.id.newsDetailed:
                Intent intent = new Intent(MainActivity.this, NewsDetailed.class);
                startActivity(intent);
                break;
        }
    }
      }
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2013, 06:28
Ответы с готовыми решениями:

Jsoup. Проблемы с выводом Elements
Код: package com.example.projecta; import java.io.IOException; import org.jsoup.Jsoup;...

Вывод информации в зависимости от выбранной позиции элемента в списке
Всем привет! Такой вопрос... Есть главная активити со списком, при нажатии на элемент которого...

Определить функцию SUM-NUMERIC-ELEMENTS, которая складывает все числовые значения в списке, игнорируя не числовые элементы
Доброго времени суток, помогите пожалуйста написать функцию SUM-NUMERIC-ELEMENTS, которая...

HTTP Status 500 - java.lang.NoClassDefFoundError: org/jsoup/Jsoup
Добавил библиотеку в pom, все нормально импортируется. Но в рантайме кидает ошибку: &quot;Handler...

Вывод списка в списке
Есть список состоящий из списков: a=,,,,,] Как можно вывести допустим число 2 из списка ?...

2
V0v1k
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.06.2013, 12:50 2
пермишены на интернет прописаны?
0
fruitcake100
0 / 0 / 0
Регистрация: 06.06.2013
Сообщений: 1
09.06.2013, 17:41 3
ЗДравствуйте! Да, пермишены все есть. собственно немного поменяю вопрос. как передать значения Итемов (Тайтлы, Юрлы) в один элемент ЛистВью? хотел дальше передавать значения чтобы выводить новость полную.

Или может стоит как то скачивать сначала этот xml а потом парсить? укажите в какую сторону копать)
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2013, 17:41

Вывод Каринки В Списке
Здравствуйте! Подскажите, пожалуйста, кто знает. В справочнике &quot;Номенклатура&quot; есть картинка для...

Поиск и вывод периода в списке
Дан список (конечный или бесконечный), содержащий периодически повторяющуюся последовательность...

Вывод данных из БД в раскрывающемся списке
Подскажите, пожалуйста, правильно ли написан скрипт? Мне нужно извлечь из таблицы DIVISION...


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

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

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