2017-04-11 95 views
-4

有一个名称列表,我想在移动屏幕上一次显示一个名称,并滑动该活动以查看另一个名称。尝试使用viewpager,但成功地多次显示一个文本视图,而不是如何在viewpager中实现列表。一次显示一个列表项 - Android

+1

发布您的代码? – user2025187

回答

1

您必须为此创建自定义适配器,该适配器将包含您的数组列表,并将其填充到TextView中。

首先要定义适配器

public class ViewPagerAdapter extends PagerAdapter { 
// Declare Variables 

Context context; 
int[] flag; 
LayoutInflater inflater; 
int pos; 
public ViewPagerAdapter(Context context, int[] flag) { 
    this.context = context; 
    this.flag = flag; 
} 
public ViewPagerAdapter (Context context, int[] flag, int position){ 
    this.context = context; 
    this.flag = flag; 
    this.pos = position; 
} 

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

@Override 
public boolean isViewFromObject(View view, Object object) { 
    return view == ((RelativeLayout) object); 
} 
@Override 
public Object instantiateItem(ViewGroup container, int position) { 

    // Declare Variables 

    TextView txt; 

    inflater = (LayoutInflater) context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View itemView = inflater.inflate(R.layout.viewpager_item, container, 
      false); 
    // Locate the ImageView in viewpager_item.xml 
    txt= (TextView) itemView.findViewById(R.id.flag); 
    // Capture position and set to the ImageView 
    txt.setText(flag[position]); 
    txt.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) {    
     } 
    }); 
    // Add viewpager_item.xml to ViewPager 
    ((ViewPager) container).addView(itemView); 

    return itemView; 
} 
@Override 
public void destroyItem(ViewGroup container, int position, Object object) { 
    // Remove viewpager_item.xml from ViewPager 
    ((ViewPager) container).removeView((RelativeLayout) object); 
} 
} 

现在加上适配器将viewPager这样

adapter = new ViewPagerAdapter(Image.this, flag);//Here Flag is array 
    viewPager.setAdapter(adapter); 
    viewPager.setCurrentItem(possition); 

希望这有助于