일단 asyncTask 클래스의 생성자를 이렇게 했습니다.
public class DB_Send_BibleInfoRequest extends AsyncTask<String,Void,JSONArray> {
private String returnValue;
private int which_category;
Activity activity;
Context mContext;
public DB_Send_BibleInfoRequest(Activity a, Context context){
activity = a;
mContext = context;
}
그 후 mainActivity에서 asyncTask클래스를 콜 할 때 생성자로 this,this를 넘겼씁니다
= new DB_Send_BibleInfoRequest(this,this);
onPostExecute() 매서드 안에서 viewPager을 생성하려고 합니다.
Bitmap_ArrayList array_list = Bitmap_ArrayList.getInstance();
// bitmap arraylist 크기를 구함.
int arraylist_size = array_list.size();
//arraylist 는 Bitmap 클래스의 ArrayList
//뷰페이저 아답터 생성
ViewPager pager = (ViewPager)activity.findViewById(R.id.viewPager);
ViewPager_Adapter va = new ViewPager_Adapter(mContext,arraylist_size);
pager.setAdapter(va);
viewPager pager 을 생성 할 때는 asyncTask에서 생성자로 받아온 activity(MainActivity)를 참조했습니다.
그 후 , adapter 생성자에는 mainActivity에서 받아온 mContext랑 어레이리스트 사이즈(뷰페이저에서 그릴 사진 갯수를 표현하기 위해)를 넘겼습니다.
아답터 클래스입니다.
public class ViewPager_Adapter extends PagerAdapter {
Context mContext;
int picture_size;
ViewPager_Adapter(Context context,int picture_length){
mContext = context;
picture_size = picture_length;
}
public int getCount() {
return picture_size;
}
public Object instantiateItem(ViewGroup Container, int position ){
ViewPager_Layout pager_layout = new ViewPager_Layout(mContext);
pager_layout.setImage(position);
return pager_layout;
}
public boolean isViewFromObject(View view, Object object) {
return view.equals(object);
}
public void destroyItem(ViewGroup container, int position, Object view) {
container.removeView((View)view);
}
}
마지막으로 뷰페이저 안에 들어갈 레이아웃 클래스입니다
public class ViewPager_Layout extends LinearLayout{
Context mContext;
ImageView image;
public ViewPager_Layout(Context context){
super(context);
init(context);
}
private void init(Context context){
mContext = context;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.viewpager_imageview, this, true);
image = (ImageView)findViewById(R.id.imageView);
}
public void setImage(int resld){
Bitmap_ArrayList bita= Bitmap_ArrayList.getInstance();
Bitmap a = bita.get(resld);
}
}
이렇게 작성하는게 맞는건지 알고싶습니다.ㅠㅠ
작동안되는데..어디가 문제인지..