2013-01-02 4 views
0

이미지보기가있는 그리드보기가 포함 된 뷰 페이지가 있습니다. 이미지를 다운로드하여 그리드보기에 놓습니다. 내 이미지 어댑터에서보기 호출기 위치에 액세스 할 수 있습니까?뷰 페이지 페이지 번호 가져 오기

ViewPager :

pager = (ViewPager)super.findViewById(R.id.viewpager_menu); 
FragmentManager fm = getSupportFragmentManager(); 
Log.d(TAG, "ViewPager adapter created"); 
this.mPagerAdapter = new MyPagerAdapter(fm); 
mPagerAdapter.testText = "TITS"; 
pager.setAdapter(mPagerAdapter); 

ViewPager 어댑터 getItem 방법 : 어댑터를 설정

@Override 
public Fragment getItem(int position) { 
    fragmentPosition = position; 
    Log.e("PageAdapter", "Creating fragment at: " + position); 
    DefinedValues.thumbnailInfo.put("activity", DefinedValues.images); 
    DefinedValues.thumbnailInfo.put("type", "info"); 
    DefinedValues.thumbnailInfo.put("page", position+ 1 + ""); 

    String request = Json.stringToJson(DefinedValues.thumbnailInfo); 
    DefinedValues.thumbnailInfo.clear(); 

    StringAsyncRetriever net = new StringAsyncRetriever(); 
    net.setListener(MyPagerAdapter.this); 
    net.execute(request, DefinedValues.GET_DATA); 
    fragment1 myFragment = new fragment1(); 
    return myFragment; 
} 

fragment1에서 : 여섯 개 작은 이미지에 대한

View view = inflater.inflate(R.layout.menu1_fragment, container, false); 
    gridView = (GridView)view.findViewById(R.id.gridview1); 
    gridView.setAdapter(adapter); 

StringAsyncRetriever 다운로드 정보를 한 번에 단편이 작성됩니다. 그것이 완료되면 그것은 6 개의 이미지를 생성하고, 그것을 글로벌 컨테이너에 추가하고, imageView을위한 어댑터를 설정할 때 그에 따라 이미지를 다운로드하고 설정합니다. 필요한 것은 올바른 이미지를 설정하기 위해 imageAdapter의 페이지 번호에 액세스하는 것입니다.

+0

나는 작동하지 않는 것을 이해하지 못합니다. 실패한 것을 설명해 주시겠습니까? – njzk2

답변

0

VP는 viewPager,

정적 INT currentPage이고;

pageListener = new PageListener();

vp.setOnPageChangeListener (pageListener);

귀하의 viewPager에 대해 변경 리스너 페이지를 삽입해야합니다. viewPager에 대한 메소드가 없습니다. 현재 페이지를 가져옵니다.

개인용 int currentPage;

private static class PageListener extends SimpleOnPageChangeListener{ 
     public void onPageSelected(int position) { 
      Log.i(TAG, "page selected " + position); 
       currentPage = position; 
    } 
} 

또는 최신 패키지 당신은 또한

vp.getCurrentItem을 사용할 수 있습니다()

당신은

를 사용하여 어댑터에서 그것을 할 수있는 다음, 정적으로 currentPage을 선언 할 수 있습니다 activityname.currentPage;

+0

고마워,하지만 난 그 위치를 어댑터에 전달해야만했다. 질문을 할 때 생각하지 못했습니다. – Romans

관련 문제