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

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

09.06.2013, 06:28. Просмотров 960. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2013, 06:28
Ответы с готовыми решениями:

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

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

Создание Resourcer Elements
Здравствуйте. Подскажите пожалуйста , как правильно создать ресурс в папке...

Jsoup
Помогите пожалуйста. При нажатии на строку с заголовком приложение вылетает....

jsoup
Здрасьте. Вопрос по поводу этой замечательной библиотеке:) Есть html...

2
V0v1k
1160 / 984 / 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2013, 17:41

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

Парсинг JSOUP
Всем доброго времени суток, собственно такой вопрос. Хочу спарсить сайт с...

Jsoup и https
Здравствуйте есть вопрос. Есть сайт на https на котором нужно залогиниться...


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

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

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