0

Also, das ist der Code meines pageradapter:Wie können Bildansichten eines Viewpingers hinzugefügt/geändert werden, nachdem diese durch den Seitenadapter gesetzt wurden?

public class AndroidImageAdapter extends PagerAdapter { 
Context mContext; 

AndroidImageAdapter(Context context) { 
    this.mContext = context; 
} 

@Override 
public int getCount() { 
    return sliderImagesId.length; 
} 

public int[] getSliderImagesId() { 
    return sliderImagesId; 
} 

public void setSliderImagesId(int[] sliderImagesId) { 
    this.sliderImagesId = sliderImagesId; 
} 

public int[] sliderImagesId = new int[]{ 
     R.drawable.ic_account, R.drawable.ic_add_location_black_24dp, 
     R.drawable.ic_directions_bus_blue_24dp 
}; 

@Override 
public boolean isViewFromObject(View v, Object obj) { 
    return v == ((ImageView) obj); 
} 

@Override 
public Object instantiateItem(ViewGroup container, int i) { 
    ImageView mImageView = new ImageView(mContext); 
    mImageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
    mImageView.setImageResource(sliderImagesId[i]); 
    ((ViewPager) container).addView(mImageView, 0); 
    return mImageView; 
} 

@Override 
public void destroyItem(ViewGroup container, int i, Object obj) { 
    ((ViewPager) container).removeView((ImageView) obj); 
} 
} 

Ich mag würde wissen, wie mehr imageviews hinzuzufügen, oder das Bild der bestehenden imageviews durch die Pageadapter erstellt ändern. Ich habe bereits versucht, ViewPager.addView ("einige neue Bildansicht") zu verwenden, aber nichts passiert. Ich könnte jede Situation wie diese finden. Kannst du mir helfen?

Antwort

0

zwei Dinge tun:

(1) Ihre Daten ändern, indem Sie das Hinzufügen oder zu deinstallieren. Da Sie ein int [] Array für Ihre sliderImagesId verwenden, müssen Sie das gesamte Array erneut deklarieren und initialisieren. Verwenden Sie stattdessen beispielsweise eine Sammlung wie ArrayList. Dann könntest du das einfach tun: sliderList.add(R.drawable.newSlide).

(2) Anruf adapter.notifyDataSetChanged(). Es teilt dem Adapter mit, dass sich seine Daten geändert haben. Und das ist es.

Verwandte Themen