2016-08-07 24 views
1

Ich versuche, ein IMG zu bekommen und es mit Picasso zu einem ImageView zu laden, aber es gibt einen weißen Bildschirm zurück, als ob es NULL wäre. Ich habe die relevanten Klassen einbezogen und auch den HTML-Teil des img mit einbezogen. Ich denke, dass ich die jsoup-Syntax falsch bekommen könnte. irgendwelche Gedanken?Verwenden von Jsoup, um HTML zu analysieren?

Main:

public class MainActivity extends AppCompatActivity 
     implements NavigationView.OnNavigationItemSelectedListener { 

    ListView list; 
    contentExcluding cont = new contentExcluding(); 


    listClass adapter; 
    String name; 

    String[] web = {"Egyt"}; 
    String[] imageId = {"a"}; 

    Handler handler; 
    Button button; 
    contentExcluding con = new contentExcluding(); 
    String title; 
    Document doc; 
    Element Current; 
    TextView text; 
    String x; 
    RunnableExample runa = new RunnableExample(); 
    ImageView image; 
    contentExcluding org = new contentExcluding(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 

     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
       this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
     drawer.setDrawerListener(toggle); 
     toggle.syncState(); 
     NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
     navigationView.setNavigationItemSelectedListener(this); 

     adapter = new listClass(MainActivity.this, web, imageId); 
     list=(ListView)findViewById(R.id.list); 
     list.setAdapter(adapter); 
     image = (ImageView)findViewById(R.id.imageView); 
     Picasso.with(this).load(org.str).resize(100,100).centerCrop().into(image); 

     list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
            int position, long id) { 
       Toast.makeText(MainActivity.this, "You Clicked at " +web[+ position], Toast.LENGTH_SHORT).show(); 
      } 
     }); 
    } 

contentExcluding;

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 

import java.io.IOException; 


public class contentExcluding { 


    Elements title; 
    String str; 

    public String kelma() { 
     Runnable rMain = new Runnable() { 
      @Override 
      public void run() { 
       try { 
        Document doc = Jsoup.connect("http://egyptianstreets.com/").get(); 
        //title = doc.getElementsByClass("left relative>img"); 
        //String x = title.attr("src"); 
        //str = x; 
        Elements x = doc.select("div.left"); 
        str = x.attr("src"); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 

      } 
     }; 
     Thread t = new Thread(rMain); 
     t.start(); 

     return str; 
    } 
} 

HTML;

<div id="head-wrap" class="left relative"> 
     <div class="head-wrap-out"> 
      <div class="head-wrap-in"> 
           <div id="featured-multi-wrap" class="left relative"> 
            <div id="featured-multi-main" class="left relative"> 
         <a href="http://egyptianstreets.com/2016/08/06/egyptian-rowers-nadia-negm-and-abdel-khalek-elbana-reach-quarter-finals-at-olympics/" rel="bookmark"> 
         <div id="featured-multi-main-img" class="left relative"> 
                  <img width="1000" height="512" src="http://egyptianstreets.com/wp-content/uploads/2016/08/pablo-2-1000x512.png" class="unlazy reg-img wp-post-image" alt="pablo (2)" />        <img width="400" height="240" src="http://egyptianstreets.com/wp-content/uploads/2016/08/pablo-2-400x240.png" class="unlazy mob-img wp-post-image" alt="pablo (2)" /> 

Antwort

0

Ihre CSS-Abfrage sollte anders sein:

Elements x = doc.select("div.left img"); 

Die alte (div.left) abgefragt, um den div-Tag und nicht die img.

+0

ich probierte das schon vorher, aber das selbe Problem, das ImageView ist leer. \ –

+0

Überprüfen Sie, dass mit neuer CSS-Abfrage der src des Bildes korrekt abgerufen wird. –

+0

Könnten Sie ein Beispiel dafür geben? –