2017-06-07 2 views
0

Ich benutze ViewPager, um Bilder vom Server zu laden.Wenn es geschleppt wird, wird das erste Bild immer wieder angezeigt.Ich überprüfte die URLs im Browser und es zeigt verschiedene Bilder.Ich versuchte dann Bilder aus drawable.Here das letzte Bild wird geladen repeatedly.Below ist der vollständige Code:Android ViewPager lädt die gleichen Bilder

ImagePagerAdapter.java:

public class ImagePagerAdapter extends PagerAdapter { 
    TaxiDisplayData taxiDisplayData; 
    LinearLayout pager_lyt; 
    ImageView imageView; 
    LayoutInflater layoutInflater; 
    Context context; 
    String category; 
    int count; 
    LinearLayout linearLayout; 
    View view; 
    ImageLoaderConfiguration config; 
    ArrayList images; 

    public ImagePagerAdapter(Context context,String ctgry){ 
     Log.e("I","T"); 
     config = new ImageLoaderConfiguration.Builder(context).build(); 
     ImageLoader.getInstance().init(config); 
     images =new ArrayList(); 
     this.context=context; 
     this.category=ctgry; 
     if (category.equalsIgnoreCase("taxi")){ 
      count= taxiDisplayData.getInstance().imagecount(); 
     } 
     layoutInflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    } 
    @Override 
    public int getCount() { 

     Log.e("Count",Integer.toString(count)); 
     return count; 
    } 

    @Override 
    public Object instantiateItem(ViewGroup container, int position) { 
     view=layoutInflater.inflate(R.layout.srch_dsply_pager,container,false); 
     linearLayout=(LinearLayout) view.findViewById(R.id.pgr_lyt); 
     imageView=(ImageView) view.findViewById(R.id.image1); 
     if (category.equalsIgnoreCase("taxi")) 
     { images =taxiDisplayData.getInstance().getArrayList(); 
      if(count!=0){ 

       Iterator iterator= images.iterator(); 
       while (iterator.hasNext()) 
       { 
        Log.e("I","Z"); 
        Picasso.with(context).load("http://example.com/xxxx/"+(String) iterator.next()) 
          .placeholder(R.drawable.doctors) 
          .fit().into(imageView); 
       } 
      }} 
     container.addView(view); 
     return view; 
    } 

    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
     container.removeView((View)object); 
    } 

    @Override 
    public boolean isViewFromObject(View view, Object object) { 
     Log.e("I","f"); 
     return view==object; 
    }} 

srch_dsply_pager.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/pgr_lyt"> 
<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/prsnl_img_dimen" 
    android:id="@+id/image1" 
    android:scaleType="fitXY" 
    /> 
</LinearLayout> 
+0

haben sollte ich versucht, Protokollierung it.It zeigten unterschiedliche url.I versuchte es in browser.It Hows verschiedene Bilder – jobin

+0

ich es noch einmal versuchen wird, und poste den Link – jobin

+0

E/Bilder: Bild /vehicle/14961331963718886.png E/Bilder: image/Fahrzeug/14961331963722322.png E/Bilder: image/Fahrzeug/14961331963736603.png E/Bilder: image/Fahrzeug/14961331963718886.png E/Bilder: image/Fahrzeug /14961331963722322.png E/Bilder: image/vehicle/14961331963736603.png – jobin

Antwort

1

instantiateItem() Erstellt eine Ansicht und fügt sie im Ansichts-Pager hinzu. In Ihrer Quelle durchlaufen Sie das gesamte Array, laden nur das letzte und geben die Ansicht zurück. Statt die während Sie so etwas wie

String url = images.get(position); 
Picasso.load(url).into(imageview); 
+0

Ich werde versuchen, dass ... – jobin

+0

Sie haben Recht. Das war das Problem. Danke – jobin