hope you fine and well,
i have the following main class :
public class MainActivity extends AppCompatActivity {
    Activity activity;
    ViewPager viewPager;
    CustomAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewPager=(ViewPager)findViewById(R.id.view_pager);
        adapter=new CustomAdapter(this);
        viewPager.setAdapter(adapter);
                ConnectionAsyncTask connectionAsyncTask = new
                ConnectionAsyncTask(MainActivity.this);
                connectionAsyncTask.execute("http://www.mocky.io/v2/570d3677270000f600dc29b6");
    }
    public void showUploader()
    {
       // findViewById(R.id.progressBar1).setVisibility(View.VISIBLE);
    }
    public void hideUploader()
    {
        //findViewById(R.id.progressBar1).setVisibility(View.GONE);
    }
    public void DisplyOnTextView(List< Student > students) {
        List  <Student> my = students ;
    }             
}
when i run the app, this main activity will use another class to read json data from link as follows:
public class StudentJasonParser {
    public static List<Student> getObjectFromJason(String jason)
    {
        List<Student> students;
        try {
            JSONArray jsonArray = new JSONArray(jason);
            students = new ArrayList<>();
            for(int i=0;i<jsonArray.length();i++)
            {
                JSONObject jsonObject = new JSONObject();
                jsonObject= (JSONObject) jsonArray.get(i);
                Student student = new Student();
                student.setID(jsonObject.getInt("id"));
                student.setName(jsonObject.getString("name"));
                student.setUrl(jsonObject.getString("url"));
                student.setDes(jsonObject.getString("des\n"));
                student.setRate(jsonObject.getDouble("rate"));
                student.setLon(jsonObject.getDouble("lon"));
                student.setLat(jsonObject.getDouble("lat"));
                students.add(student);
            }
        } catch (JSONException e) {
            e.printStackTrace();
            return null;
        }
        return students;
    }
}
now this class will return the data to the following class :
public class ConnectionAsyncTask extends AsyncTask<String,String,String> {
    Activity activity;
    public ConnectionAsyncTask(Activity activity) {
        this.activity=activity;
    }
    @Override
    protected void onPreExecute() {
        //((MainActivity)activity).DisplyOnTextView();
        ((MainActivity)activity).showUploader();
    }
    @Override
    protected String doInBackground(String... params) {
        String content =HttpManager.getData(params[0]);
        return content;
    }
    @Override
    protected void onProgressUpdate(String... values) {
        super.onProgressUpdate(values);
    }
    @Override
    protected void onPostExecute(String s) {
        ((MainActivity)activity).hideUploader();
        List<Student> students= StudentJasonParser.getObjectFromJason(s);
        if (students != null) {
                    ((MainActivity) activity).DisplyOnTextView(students);
        }
   }
}
this line :                         ((MainActivity)activity).DisplyOnTextView(students); 
will return the fetched data to the main class in the following function (mentioned in the main class ! )
public void DisplyOnTextView(List< Student > students) {
        List  <Student> my = students ;
    }
now what i want is to pass this list to the following class in order to use it in the imageView and textView in the viewPager instead of the pre-defined data in the class :
public class CustomAdapter extends PagerAdapter {
    private int[] images = {R.drawable.sample_0,R.drawable.sample_1};
    private Context ctx;
    private LayoutInflater LayoutInflater;
    public CustomAdapter(Context ctx)
    {
        this.ctx=ctx;
    }
    @Override
    public int getCount() {
        return images.length;
    }
    @Override
    public boolean isViewFromObject(View view, Object object) {
        return (view==(LinearLayout)object);
    }
    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        LayoutInflater = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = LayoutInflater.inflate(R.layout.slide_layout,container,false);
        ImageView imageView =(ImageView) view.findViewById(R.id.image_view);
        TextView textView = (TextView)view.findViewById(R.id.image_count);
        imageView.setImageResource(images[position]);
        textView.setText(""+position);
        container.addView(view);
        return view;
    }
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((LinearLayout) object);
    }
}
any idea ?!
thanks, regards.
 
    