Android Viewpager中的setCurrentItem不';t工作

Android Viewpager中的setCurrentItem不';t工作,android,android-studio,android-viewpager,Android,Android Studio,Android Viewpager,我正在创建一个图库应用程序,并使用viewpager显示照片 图像列表的类 import android.content.Context; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.GridLayoutManager; import android.support

我正在创建一个图库应用程序,并使用viewpager显示照片

图像列表的类

import android.content.Context;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.ArrayList;

public class FotosList extends AppCompatActivity {

    public static FotosList m;

    private final Integer image_ids[] = {
            R.drawable.foto1,
            R.drawable.foto2,
            R.drawable.foto3,
            R.drawable.foto4,
            R.drawable.foto5,
            R.drawable.foto6,
            R.drawable.foto8,
            R.drawable.foto9,
            R.drawable.foto10,
            R.drawable.foto11,
            R.drawable.foto12,
            R.drawable.foto13,
            R.drawable.foto14,
            R.drawable.foto15
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        m=this;
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fotos_list);

        RecyclerView recyclerView = (RecyclerView)findViewById(R.id.imagegallery);
        recyclerView.setHasFixedSize(true);

        RecyclerView.LayoutManager layoutManager = new GridLayoutManager(getApplicationContext(),2);
        recyclerView.setLayoutManager(layoutManager);
        ArrayList<CreateList> createLists = prepareData();
        MyAdapter adapter = new MyAdapter(getApplicationContext(), createLists);
        recyclerView.setAdapter(adapter);

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        finish();
        return true;
    }

    public class CreateList {

        private String image_title;
        private Integer image_id;
        public Integer getImage_ID() {
            return image_id;
        }

        public void setImage_ID(Integer android_image_url) {
            this.image_id = android_image_url;
        }
    }

    private ArrayList<CreateList> prepareData(){

        ArrayList<CreateList> theimage = new ArrayList<>();
        for(int i = 0; i< image_ids.length; i++){
            CreateList createList = new CreateList();
            createList.setImage_ID(image_ids[i]);
            theimage.add(createList);
        }
        return theimage;
    }

    public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
        private ArrayList<CreateList> galleryList;
        private Context context;

        public MyAdapter(Context context, ArrayList<CreateList> galleryList) {
            this.galleryList = galleryList;
            this.context = context;
        }

        @Override
        public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
            View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.cell_layout, viewGroup, false);
            return new ViewHolder(view);
        }

        @Override
        public void onBindViewHolder(MyAdapter.ViewHolder viewHolder,final int i) {
            viewHolder.img.setScaleType(ImageView.ScaleType.CENTER_CROP);
            viewHolder.img.setImageResource((galleryList.get(i).getImage_ID()));
            viewHolder.img.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent in = new Intent(FotosList.m, Fotos.class);
                    in.putExtra("img",galleryList.get(i).getImage_ID());
                    m.startActivity(in);
                }
            });
        }

        @Override
        public int getItemCount() {
            return galleryList.size();
        }

        public class ViewHolder extends RecyclerView.ViewHolder{
            private TextView title;
            private ImageView img;
            public ViewHolder(View view) {
                super(view);

                title = (TextView)view.findViewById(R.id.title);
                img = (ImageView) view.findViewById(R.id.img);
            }
        }
    }

}
单击照片打开带有图像的viewpager。。。 他打开最后一张照片。。。
如何打开单击的图像这是您的问题-

viewHolder.img.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent in = new Intent(FotosList.m, Fotos.class);
                    in.putExtra("img",galleryList.get(i).getImage_ID());
                    m.startActivity(in); // What is m??
                }
            });
in.putExtra(“img”,galleryList.get(i.getImage_ID())
您正在使用
imageId
即resourceID作为附加项传递,而您需要在
适配器中找到映像的位置。

而是做一些类似-

viewHolder.img.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
          Intent in = new Intent(FotosList.m, Fotos.class);
          in.putExtra("img", getAdapterPosition()); // getAdapterPosition() will return position of current view
          context.startActivity(in); // What is m?? use context instead
      }
});

在onClickViewPager中,只需将单击项目的位置传递给第二个活动

viewHolder.img.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent in = new Intent(FotosList.m, Fotos.class);
                    in.putExtra("img",i);
                    m.startActivity(in);
                }
        });

工作!非常感谢!不客气。
viewHolder.img.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent in = new Intent(FotosList.m, Fotos.class);
                    in.putExtra("img",i);
                    m.startActivity(in);
                }
        });