如何在viewpager中设置数据?

时间:2016-06-29 13:44:45

标签: java android json

这里,在这个viewpageradapter类中用于设置json数据,如何在viewpager中设置数据。我可以尝试实施,但我不知道如何实现这一目标。

public class ViewPagerAdaptor extends PagerAdapter {
    Context context;


    ImageView imageView;
    TextView tv_date;
    TextView tv_content;
    LayoutInflater inflater;
    ArrayList<Model> arrayList;

    public ViewPagerAdaptor(Context context, ArrayList<Model> arrayList) {
        this.context = context;
        this.arrayList = arrayList;
    }

    @Override
    public int getCount() {
        return arrayList.size();
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view==(LinearLayout)object;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {

        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View itemView = inflater.inflate(R.layout.viewpager_item, container,
                false);

        imageView= (ImageView) itemView.findViewById(R.id.image);
        tv_date= (TextView) itemView.findViewById(R.id.tv_date);
        tv_content= (TextView) itemView.findViewById(R.id.tv_content);




        // Capture position and set to the ImageView
        imageView.setImageResource(flag[position]);

        // Capture position and set to the TextViews
        tv_date.setText(date[position]);
        tv_content.setText(content[position]);

        ((ViewPager) container).addView(itemView);

        return itemView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {

        ((ViewPager) container).removeView((LinearLayout) object);
    }
}

1 个答案:

答案 0 :(得分:0)

您需要从arraylist获取它并将其绑定到instantiateItem()方法中的用户界面。

请参阅下面的示例代码,

@Override
public Object instantiateItem(ViewGroup container, int position) {

    inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View itemView = inflater.inflate(R.layout.viewpager_item, container, false);

    imageView= (ImageView) itemView.findViewById(R.id.image);
    tv_date= (TextView) itemView.findViewById(R.id.tv_date);
    tv_content= (TextView) itemView.findViewById(R.id.tv_content);

    Model item = (Model) arrayList.get(position);

    // Capture position and set to the ImageView
    imageView.setImageResource(item.getFlag());

    // Capture position and set to the TextViews
    tv_date.setText(item.getDate());
    tv_content.setText(item.getContent());

    ((ViewPager) container).addView(itemView);

    return itemView;
}