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

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

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

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

09.06.2013, 06:28. Просмотров 874. Ответов 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 Parsing with Jsoup
jsoup Android
Android Jsoup. Проблемы с выводом Elements
Jsoup парс Android
Jsoup и https Android
Создание Resourcer Elements Android
Вывод информации в зависимости от выбранной позиции элемента в списке Android
Jsoup получить элемент Android
Авторизация через jsoup Android
Парсинг на jsoup Android
Не работает Jsoup.connect Android
Android Jsoup

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

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

Или может стоит как то скачивать сначала этот xml а потом парсить? укажите в какую сторону копать)
Yandex
Объявления
09.06.2013, 17:41     Вывод Elements в списке. Jsoup
Ответ Создать тему
Опции темы

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