Android-如何管理viewpager在适配器中的位置?

Android-如何管理viewpager在适配器中的位置?,android,android-viewpager,Android,Android Viewpager,我正在开发一个android应用程序,其中我显示了一个列表视图,其中包含许多项目。单击项目时,我将传递所有项目的项目名称和ArrayList Intent myIntent = new Intent(context, DetailActivity.class); myIntent.putExtra("name", name); myIntent.putStringArrayListExtra("arraylistofitems", arraylis

我正在开发一个
android应用程序
,其中我显示了一个
列表视图
,其中包含许多项目。单击项目时,我将传递所有项目的项目名称和
ArrayList

Intent myIntent = new Intent(context, DetailActivity.class);
            myIntent.putExtra("name", name);
            myIntent.putStringArrayListExtra("arraylistofitems", arraylistofitems);
            context.startActivity(myIntent);
DetailActivity
中,我想显示列表中单击的项目,并向左或向右滚动
显示
列表中的剩余项目。我正在使用以下代码-

Intent mIntent = getIntent();
    name = mIntent.getStringExtra("name");
    names = mIntent.getStringArrayListExtra("arraylistofitems");
    viewPager = (ViewPager) findViewById(R.id.idofviewpager);
    adapter = new ViewPagerAdapter(context, arraylistofitems);
    viewPager.setAdapter(adapter);
ViewPagerAdapter如下所示-

public ViewPagerAdapter(Context context,ArrayList<String> data) {
    this.context = context;
    this.data=data;
}

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

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

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

    // item views declaration

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

    //layout item initialization

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

    ParseQuery<ParseObject> query = ParseQuery.getQuery("myclass");
    query.whereEqualTo("colName", data.get(position));
    query.findInBackground(new FindCallback<ParseObject>() {
        @Override
        public void done(List<ParseObject> itemList, ParseException arg1) {
            for (int i = 0; i < itemList.size(); i++) {
                ParseObject po = itemList.get(i);

                //set the values from parse into views
            }
        }
    });


    return itemView;

}

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

}
public ViewPagerAdapter(上下文,数组列表数据){
this.context=上下文;
这个。数据=数据;
}
@凌驾
public int getCount(){
返回data.size();
}
@凌驾
公共布尔值isViewFromObject(视图,对象){
返回视图==((MyLayout)对象);
}
@凌驾
公共对象实例化项(视图组容器,int位置){
//项目视图声明
充气器=(充气器)上下文
.getSystemService(上下文布局\充气机\服务);
查看项目视图=充气机。充气(R.layout.viewpager\u项目id,容器,
假);
//布局项初始化
((ViewPager)容器).addView(itemView);
ParseQuery=ParseQuery.getQuery(“myclass”);
query.whereEqualTo(“colName”,data.get(position));
findInBackground(新的FindCallback(){
@凌驾
公共作废完成(列表项列表,解析异常arg1){
对于(int i=0;i
但所有数据都是从开始显示的(第0个位置到
arraylist
的长度)


问题-如何在打开单击的项目时实现滚动效果,并在滚动时显示左侧项目,反之亦然?

您可以做一件事,传递正在单击的项目的位置,并在您的详细活动中获取它,就像获取项目名称和列表数组一样。然后打下面的电话-

    viewPager.setCurrentItem(position);
所以,现在不需要管理适配器上的位置。适配器会处理好的