Разный текст для каждого изображения в viewpager изображения

Я использовал класс viewpager для отображения наборов изображений вместо класса галереи, поскольку он устарел и настроил его, чтобы отобразить текст, используя приведенный ниже код, проблема в том же тексте, который был показан для всех изображений, что им пытается получить: Разный текст для Каждое изображение , которое объясняет это, позволяет сказать, что у нас есть 5 изображений, у него должно быть 5 разных текстов, каждый из которых описывает его образ.

Любые советы будут оценены, спасибо

Код:

ImagePager

public class ImagePager extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ImagePagerAdapter adapter = new ImagePagerAdapter(this, imageArra); ViewPager myPager = (ViewPager) findViewById(R.id.myimagepager); myPager.setAdapter(adapter); myPager.setCurrentItem(0);} private int imageArra[] = { R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.d, R.drawable.e}; } 

ImagePagerAdapter

  public class ImagePagerAdapter extends PagerAdapter { Activity activity; int imageArray[]; public ImagePagerAdapter(Activity act, int[] imgArra) { imageArray = imgArra; activity = act;} public int getCount() { return imageArray.length;} public Object instantiateItem(View collection, int position) { LayoutInflater inflater = (LayoutInflater)collection.getContext ().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.custom_pager, null); ImageView im=(ImageView) layout.findViewById(R.id.myimage); im.setImageResource(imageArray[position]); TextView txt=(TextView) layout.findViewById(R.id.image_text); ((ViewPager) collection).addView(layout, 0); return layout; } @Override public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager) arg0).removeView((View) arg2); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == ((View) arg1); } @Override public Parcelable saveState() { return null; } } 

activity_main.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <android.support.v4.view.ViewPager android:id="@+id/myimagepager" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> 

custom_pager.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#FFDAB9" android:gravity="center_horizontal"> <ImageView android:id="@+id/myimage" android:layout_width="match_parent" android:layout_height="0dp" android:layout_margin="5dp" android:layout_weight="2" /> <TextView android:id="@+id/image_text" android:layout_width="fill_parent" android:layout_height="0dp" android:textColor="#B22222" android:layout_weight="1" android:text="text to image" /> </LinearLayout> 

    Вы можете передать массив строк в ваш адаптер, соответствующий каждому изображению.

    В этом объявлении укажите свой массив строк со списком изображений.

     private int imageArra[] = { R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.d, R.drawable.e}; private String[] stringArray = new String[] { "Image a", "Image b","Image c","Image d","Image e"}; 

    Затем при создании экземпляра адаптера.

     ImagePagerAdapter adapter = new ImagePagerAdapter(this, imageArra, stringArray ); 

    В вашем адаптере:

     int imageArray[]; String[] stringArray; public ImagePagerAdapter(Activity act, int[] imgArra, String[] stringArra) { imageArray = imgArra; activity = act; stringArray = stringArra; } 

    Затем назначьте текстовое значение из массива

     TextView txt=(TextView) layout.findViewById(R.id.image_text); txt.setText(stringArray[position]);