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 つのサムネイルに関する情報をダウンロードします。完了すると、6 つのイメージが作成され、それらがグローバル コンテナに追加さimageViewれます。私が必要とするのは、imageAdapter正しい画像を設定するためにページ番号にアクセスすることです。

4

1 に答える 1

0

vp は viewPager です。

static int currentPage;

pageListener = 新しい 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 を static として宣言することができます。その後、アダプタからそれを使用できます

activityname.currentPage;

于 2013-01-02T14:01:03.387 に答える