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

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

Войти
Регистрация
Восстановить пароль
 
fruitcake
Сообщений: n/a
#1

Вывод Elements в списке. Jsoup - Программирование Android

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

Jsoup. Проблемы с выводом Elements - Программирование Android
Код: package com.example.projecta; import java.io.IOException; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; ...

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

Создание Resourcer Elements - Программирование Android
Здравствуйте. Подскажите пожалуйста , как правильно создать ресурс в папке &quot;values&quot; в файле strings.xml ? И что значит обведенное поле на...

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

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

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

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

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

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

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

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

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


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

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

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