I'm fetching data using `async task` which has details of movies like ImageUrl, title, rating , e.t.c. I've generated a movie class for `movie` and I am loading the Images from `ImageUrl` in my `gridView` . Clicking on Image will navigate to that `movie_detail_activity`.   
 Now when I run the app initially , clicking on image navigates to activity with correct details but when I scroll down and then up , imageViews get automatically changed but the Details activity remains as it was initially.

```
import...
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String url = "https://api.themoviedb.org/3/movie/top_rated?api_key=MY_KEY";
        new FetchPopularMoviesData().execute(url);
    }

    public void launch_activity(View view, MovieClass movie){
        Intent intent= new Intent(this,MovieDetails.class);
        Gson gson = new Gson();
        String movieJson = gson.toJson(movie);
        intent.putExtra("MovieJSON",movieJson);
        startActivity(intent);
    }
    public class FetchPopularMoviesData extends AsyncTask<String, Void, ArrayList<MovieClass>> {

        private Exception exception;         

        protected void onPreExecute() {

        }

        protected ArrayList<MovieClass> doInBackground(String... urls) {

            ArrayList<MovieClass> movies = new ArrayList<>();
            //code for fetching data from api
                return movies;              
        }

        protected void onPostExecute(final ArrayList<MovieClass> movies) {

            if (movies == null) {
                Log.e("After Parse Error", "No data found ,THERE WAS AN ERROR");

                Toast.makeText(getApplicationContext(), "No working internet connection", Toast.LENGTH_LONG).show();
            }
            else {
                for (int i = 0; i < movies.size(); i++) {
                    String title_name = movies.get(i).getTitle();
                    Log.i("INFO", title_name);
                }
                GridView gridview = (GridView) findViewById(R.id.gridview);
                gridview.setAdapter(new MovieAdapter(MainActivity.this, movies));

                gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    public void onItemClick(AdapterView<?> parent, View v,
                                            int position, long id) {
                        launch_activity(v, movies.get(position));
                    }
                });
             }
    }    
}

```

And here is the code for the adapter

```
public class MovieAdapter extends BaseAdapter {
    private Context mContext;
    private ArrayList<MovieClass> movies;

    public MovieAdapter(Context c,ArrayList<MovieClass> movies) {
        mContext = c;
        this.movies = movies;
    }

    public int getCount() {
        return movies.size();
    }

    public Object getItem(int position) {
        return null;
    }

    public long getItemId(int position) {
        return 0;
    }

    // create a new ImageView for each item referenced by the Adapter
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if (convertView == null) {
            // if it's not recycled, initialize some attributes
            imageView = new ImageView(mContext);
            Picasso.with(mContext)
                    .load(movies.get(position).getPoster())
                    .into(imageView);
            imageView.setLayoutParams(new GridView.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        } else {
            imageView = (ImageView) convertView;
        }

        return imageView;
    }
}

```

How do I keep `ImageView` in sync with the `movie_details_activity` content?