0

gridviewでフラグメントを作成する正しい方法は何ですか? 私はこのようにすることができますか?

<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview1"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:background="#FF0000"

    android:numColumns="2"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="0dp"
    android:stretchMode="columnWidth"
    android:gravity="center"
/>

また、実行時にグリッドビューにアダプターを追加して項目を追加するにはどうすればよいですか?

private void initialisePaging() {

    List<Fragment> fragments = new Vector<Fragment>();
    fragments.add(Fragment.instantiate(this, fragment1.class.getName()));
    fragments.add(Fragment.instantiate(this, fragment2.class.getName()));
    fragments.add(Fragment.instantiate(this, fragment3.class.getName()));
    this.mPagerAdapter  = new MyPagerAdapter(super.getSupportFragmentManager(), fragments);
    //this.mPagerAdapter.setListener(this);
    Log.e("init", "message");
    pager = (ViewPager)super.findViewById(R.id.viewpager_menu);
    pager.setAdapter(this.mPagerAdapter);

    GridView gridView = (GridView)findViewById(R.layout.menu1_fragment);
}

これを行うと、グリッドビューが null になり、アダプターを接続できません。

4

1 に答える 1

1

ページャー自体を構成するときではなく、 のinstantiateItemメソッドで個々のページのビューを見つけて構成する必要があります。PagerAdapter各ページは、必要なときに遅延して作成さinstantiateItemれ、各ページをセットアップするために呼び出されます。ここでインスタンスを見つけようとしている時点ではGridView、ページャーがインスタンスを作成しておらず、セットアップするページにローカライズしていないため、インスタンスはまだ存在していません。

于 2012-12-10T17:24:04.267 に答える