将Activity类更改为Fragment(使用FragmentPagerAdapter)

时间:2011-10-12 02:44:27

标签: android android-layout android-fragments

我有两个活动要与FragmentPagerAdapter结合使用。 我遵循了一个教程,一切都适用于测试类。但是,如上所述,我想在该水平滑块中使用两个先前创建的活动。

目前它看起来像这样:

public class CheatPagerFragmentActivity extends FragmentActivity {
...
/**
 * Initialise the fragments to be paged
 */
private void initialisePaging() {

    List<Fragment> fragments = new Vector<Fragment>();
    fragments.add(Fragment.instantiate(this, CheatView.class.getName()));
    fragments.add(Fragment.instantiate(this, CheatMetaView.class.getName()));


    this.mPagerAdapter = new MyPagerAdapter(super.getSupportFragmentManager(), fragments);

    ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager);
    pager.setAdapter(this.mPagerAdapter);
}
}

CheatView和CheatMetaView曾经是活动,但现在是片段(“扩展片段”)。我不需要知道如何仍然可以将信息传递给那些(新的)碎片,因为我不能再使用“intent”我以前如何在活动之间传递信息。

现在,在这些类的代码中创建新元素也会被标记为错误。喜欢这行代码:

TableRow trTh = new TableRow(this);

如何将信息传递给这些类,如何更改代码以在以前的Activity类的代码中创建新的TableRow?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

重新提出第一个问题:不是使用Fragment.instantiate,而是为每个片段创建一个newInstance方法,该方法可以将您希望传递的信息作为参数传递。有关示例,请参阅下面的页面(搜索newInstance):

http://developer.android.com/reference/android/app/Fragment.html