Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HTML解析JSoup img不';行不通 新LOGCAT LogCat错误消息_Java_Android_Html - Fatal编程技术网

Java HTML解析JSoup img不';行不通 新LOGCAT LogCat错误消息

Java HTML解析JSoup img不';行不通 新LOGCAT LogCat错误消息,java,android,html,Java,Android,Html,此部分用于在img的ArrayList中插入Bitmap URL解析为: Mainactivity.java 公共类MainActivity扩展活动{ ListView lista; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lista=(ListView)this.findviewbyd(R.id.

此部分用于在img的
ArrayList
中插入
Bitmap
URL解析为:

Mainactivity.java
公共类MainActivity扩展活动{
ListView lista;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lista=(ListView)this.findviewbyd(R.id.main_lista);//列表id
//异步任务
ParsingPaginaWeb解析=新建ParsingPaginaWeb();
解析。执行(“”);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
私有类ParsingPaginaWeb扩展异步任务{
ArrayList titoli;//列表标题
ArrayList descripioni;//列表描述
ArrayList日期;//列表日期
ArrayList类别;//列表类别
ArrayList immaginiart;//lista img
@凌驾
受保护的void onPreExecute()
{
titoli=新的ArrayList();
descripioni=newarraylist();
日期=新的ArrayList();
category=newarraylist();
immaginiart=新数组列表();
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
位图;
试一试{
Document doc=Jsoup.connect(“http://www.santeramolive.it/news/tutte-le-news.aspx")
.userAgent(“Mozilla/5.0(Windows NT 6.2;WOW64)AppleWebKit/537.22(KHTML,如Gecko)Chrome/25.0.1364.172 Safari/537.22”)
.timeout(30000.get();
元素listarticoli=doc.getElementsByClass(“列出文章”).first();
Elements articoli=listarticoli.getElementsByClass(“艺术列表”);
用于(元素Artiolo:Artioli)
{
//头衔
字符串titolo=articolo.getElementsByClass(“t-art-list”).first().text();
//描述
String descripione=articolo.getElementsByTag(“p”).first().text();
//在arraylist中插入
添加(titolo);
说明i.添加(说明e);
Elements dcs=articolo.getElementsByClass(“日期标签艺术列表”);
用于(元件dc:dcs)
{
字符串数据=dc.getElementsByClass(“日期艺术列表”).first().text();
字符串categoria=dc.getElementsByClass(“标记艺术列表”).first().text();
date.add(数据);//add date
categorie.add(categoria);//添加类别
}
//img部件
元素imgdivs=articolo.getElementsByClass(“f-art-list”);
用于(元素imgsdiv:imgdivs)
{
Element divimg=imgsdiv.getElementsByClass(“惰性img响应”).first();
字符串imgSrc=divimg.attr(“src”);
InputStream input=new java.net.URL(imgSrc.openStream();
位图=BitmapFactory.decodeStream(输入);
immaginiart.add(位图);
}
}
}捕获(例外e){
Log.e(“ESEMPIO”、“ERRORE-NEL解析”);
}
返回null;
}
@凌驾
受保护的void onPostExecute(字符串结果)
{
ParsingarayAdapter=新的ParsingarayAdapter(main activity.this,titoli,descripioni,date,categorie,immaginiart);
setAdapter(适配器);
}
}
}
parsingarayadapter.java
公共类ParsingArrayAdapter扩展ArrayAdapter{
//静态等风险和agli id
私有最终静态int-LAYOUT=R.LAYOUT.riga_listview;
私有最终静态int TITOLO=R.id.riga_listview_TITOLO;
私有最终静态int descripione=R.id.riga_listview_descripione;
私有最终静态int DATA=R.id.riga_listview_DATA;
私有最终静态int CATEGORIA=R.id.riga_listview_CATEGORIA;
私有最终静态int-IMMAGINE=R.id.riga\u listview\u-IMMAGINE;
ArrayList titoli;
ArrayList Descriptioni;
ArrayList日期;
ArrayList分类;
ArrayList Inmaginiart;
上下文c;//上下文
布局充气机;//布局充气机
公共ParsingArrayAdapter(上下文上下文、ArrayList标题、ArrayList描述、ArrayList日期、ArrayList分类、ArrayList immaginiart)
{
超级(上下文,TITOLO);
c=上下文;
this.titoli=titoli;
this.descripioni=descripioni;
这个日期=日期;
this.categorie=categorie;
这个。immaginiart=immaginiart;
此充气器=来自(c)的充气器;
}
@凌驾
public int getCount()
{
返回titoli.size();
}
@凌驾
公共视图getView(int pos、视图视图、视图组父视图)
{
CacheRiga cache;//cache
如果(视图==null)
{
//在quanto devo ancora modificare中查看非附件alla lista
//我是testi delle textview
视图=充气机。充气(布局、父级、假);
cache=新CacheRiga();
cache.titolo=(TextView)view.findViewById(titolo);
cache.descripione=(TextView)view.findViewById(descripione);//collego descripione
cache.data=(TextView)view.findViewById(数据);
cache.categoria=(TextView)view.findViewById(categoria);
cache.immagineart=(ImageView)view.findViewById(IMMAGINE);
view.setTag(缓存);
}
其他的
{
cache=(CacheRiga)视图。getTag();dalla视图
}
cache.titolo.setText(titoli.get(pos));
cache.descripione.setText(descripioni.get(pos));
cache.data.setText(date.get(pos));
cache.categoria.setText(categorie.get(pos));
cache.immagineart.setImageBitmap(immaginiart.get(pos));
返回视图;
}
私有类CacheRiga{
公共文本视图标题;
公共文本视图描述;
公共文本视图数据;
公共文本视图分类;
公众形象观;
}
}
您的问题出在

 String imgSrc = divimg.attr("src");
因为离婚==
  <figure class="f-art-list">
    <a href="/news/Cronaca/295507/news.aspx" id="MainContent_ListNews_rptNews_lnkToNews1_0" title="Ai domiciliari dopo atti incendiari nei confronti di imprenditore di Noci. Arrestati due santermani">
<img style="display: block;" data-original="http://cdn.livenetwork.it/news/295507/634903800413300428_arresto_carabinieri_HomeStandard_191x95.jpg" src="http://cdn.livenetwork.it/news/295507/634903800413300428_arresto_carabinieri_HomeStandard_191x95.jpg" class="lazy img-responsive" alt="Ai domiciliari dopo atti incendiari nei confronti di imprenditore di Noci. Arrestati due santermani" title="Ai domiciliari dopo atti incendiari nei confronti di imprenditore di Noci. Arrestati due santermani">
        </a>
</figure>
cache.immagineart.setImageBitmap(immaginiart.get(pos));
06-20 12:30:17.097: E/AndroidRuntime(15941): FATAL EXCEPTION: main
06-20 12:30:17.097: E/AndroidRuntime(15941): Process: it.rs.esempioparsinglistview, PID: 15941
06-20 12:30:17.097: E/AndroidRuntime(15941): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
06-20 12:30:17.097: E/AndroidRuntime(15941):         at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at java.util.ArrayList.get(ArrayList.java:308)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at it.rs.esempioparsinglistview.ParsingArrayAdapter.getView(ParsingArrayAdapter.java:78)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.widget.AbsListView.obtainView(AbsListView.java:2295)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.widget.ListView.measureHeightOfChildren(ListView.java:1263)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.widget.ListView.onMeasure(ListView.java:1175)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.view.View.measure(View.java:16521)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1231)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.widget.LinearLayout.onMeasure(LinearLayout.java:590)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.view.View.measure(View.java:16521)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.view.View.measure(View.java:16521)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:327)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.view.View.measure(View.java:16521)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2553)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.view.View.measure(View.java:16521)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1916)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1113)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1295)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.view.Choreographer.doCallbacks(Choreographer.java:574)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.view.Choreographer.doFrame(Choreographer.java:544)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.os.Handler.handleCallback(Handler.java:733)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.os.Handler.dispatchMessage(Handler.java:95)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.os.Looper.loop(Looper.java:136)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at android.app.ActivityThread.main(ActivityThread.java:5142)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at java.lang.reflect.Method.invokeNative(Native Method)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at java.lang.reflect.Method.invoke(Method.java:515)
06-20 12:30:17.097: E/AndroidRuntime(15941):         at dalvik.system.NativeStart.main(Native Method)


ParsingArrayAdapter.java:78 is this: cache.immagineart.setImageBitmap(immaginiart.get(pos));
 public class MainActivity extends Activity {

ListView lista;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    lista = (ListView)this.findViewById(R.id.main_lista);//list id

    //asynctask
    ParsingPaginaWeb parsing = new ParsingPaginaWeb();
    parsing.execute("");
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

private class ParsingPaginaWeb extends AsyncTask<String,String,String> {

    ArrayList<String> titoli; //list title
    ArrayList<String> descrizioni; //list description
    ArrayList<String> date; // list date
    ArrayList<String> categorie; // list category
    ArrayList<Bitmap> immaginiart; // lista img

    @Override
    protected void onPreExecute()
    {

        titoli = new ArrayList<String>();
        descrizioni = new ArrayList<String>();
        date= new ArrayList<String>();
        categorie= new ArrayList<String>();
        immaginiart = new ArrayList<Bitmap>();
    }

    @Override
    protected String doInBackground(String... params) {
        Bitmap bitmap;
        try {
            Document doc = Jsoup.connect("http://www.santeramolive.it/news/tutte-le-news.aspx")
                    .userAgent("Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22")
                    .timeout(30000).get();

            Element listarticoli = doc.getElementsByClass("list-articles").first();


            Elements articoli = listarticoli.getElementsByClass("art-list");
            for(Element articolo : articoli)
            {

                    // title
                    String titolo = articolo.getElementsByClass("t-art-list").first().text();

                    // description


                    String descrizione = articolo.getElementsByTag("p").first().text();

                    // insert in arraylist
                    titoli.add(titolo);
                    descrizioni.add(descrizione);

                    Elements dcs = articolo.getElementsByClass("date-tag-art-list");
                    for(Element dc : dcs)
                    {

                    String data = dc.getElementsByClass("date-art-list").first().text();

                    String categoria = dc.getElementsByClass("tag-art-list").first().text();
                    date.add(data); // add date
                    categorie.add(categoria);// add category
                    }
                    //img part
                    Elements imgdivs = articolo.getElementsByClass("f-art-list");
                    for(Element imgsdiv : imgdivs)
                    {

                    Element divimg = imgsdiv.getElementsByClass("lazy img-responsive").first();
                    String imgSrc = divimg.attr("src");
                    InputStream input = new java.net.URL(imgSrc).openStream();
                    bitmap = BitmapFactory.decodeStream(input);
                    immaginiart.add(bitmap);

                    }

             }
        } catch (Exception e) {

            Log.e("ESEMPIO", "ERRORE NEL PARSING");
        }
        return null;
    }

    @Override
    protected void onPostExecute(String result)
    {


        ParsingArrayAdapter adapter = new ParsingArrayAdapter(MainActivity.this, titoli, descrizioni, date, categorie, immaginiart);
        lista.setAdapter(adapter);
    }

}

}
public class ParsingArrayAdapter extends ArrayAdapter<String>{

//riferimenti statici alle risorse e agli id
private final static int LAYOUT = R.layout.riga_listview;
private final static int TITOLO = R.id.riga_listview_titolo;
private final static int DESCRIZIONE = R.id.riga_listview_descrizione;
private final static int DATA = R.id.riga_listview_data;
private final static int CATEGORIA = R.id.riga_listview_categoria;
private final static int IMMAGINE= R.id.riga_listview_immagine;

ArrayList<String> titoli;
ArrayList<String> descrizioni; 
ArrayList<String> date; 
ArrayList<String> categorie;
ArrayList<Bitmap> immaginiart;

Context c; //context
LayoutInflater inflater; //layout inflater

public ParsingArrayAdapter(Context context,ArrayList<String> titoli,ArrayList<String> descrizioni, ArrayList<String> date, ArrayList<String> categorie, ArrayList<Bitmap> immaginiart)
{
    super(context,TITOLO);
    this.c = context;
    this.titoli = titoli;
    this.descrizioni = descrizioni;
    this.date= date;
    this.categorie= categorie;
    this.immaginiart= immaginiart;
    this.inflater = LayoutInflater.from(c);
}

@Override
public int getCount()
{
    return titoli.size(); 
}


@Override
public View getView(int pos,View view,ViewGroup parent)
{
    CacheRiga cache; //cache
    if(view==null)
    {
        // creo la view ma non l'attacco alla lista in quanto devo ancora modificare
        // i testi delle textview
        view = inflater.inflate(LAYOUT, parent,false); 
        cache = new CacheRiga(); 
        cache.titolo = (TextView) view.findViewById(TITOLO); 
        cache.descrizione = (TextView) view.findViewById(DESCRIZIONE);//collego descrizione
        cache.data = (TextView) view.findViewById(DATA);
        cache.categoria = (TextView) view.findViewById(CATEGORIA);
        cache.immagineart = (ImageView) view.findViewById(IMMAGINE);
        view.setTag(cache);
    }
    else
    {
        cache = (CacheRiga) view.getTag(); dalla view
    }

    cache.titolo.setText(titoli.get(pos));
    cache.descrizione.setText(descrizioni.get(pos));
    cache.data.setText(date.get(pos)); 
    cache.categoria.setText(categorie.get(pos));
    cache.immagineart.setImageBitmap(immaginiart.get(pos));

    return view;
}

private class CacheRiga { 
    public TextView titolo; 
    public TextView descrizione;
    public TextView data; 
    public TextView categoria; 
    public ImageView immagineart; 
}

}
 String imgSrc = divimg.attr("src");
                Element divimg = imgsdiv.getElementsByClass("lazy img-responsive").first();

                if ( divimg==null)
                    {
                    Log.e(TAG, "divimg==null: " + titolo);

                    immaginiart.add(null);                      
                    }
                else
                {
                String imgSrc = divimg.attr("src");
                InputStream input = new java.net.URL(imgSrc).openStream();
                bitmap = BitmapFactory.decodeStream(input);
                immaginiart.add(bitmap);
                }