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

发布于 2024-12-09 12:07:49 字数 1032 浏览 4 评论 0原文

我有两个活动想要与 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曾经是Activities,但现在是Fragment(“扩展Fragment”)。我不需要知道如何仍然可以将信息传递给那些(新)片段,因为我不能再使用“意图”来在活动之间传递信息。

此外,在这些类的代码中创建新元素现在也被标记为错误。就像这行代码:

TableRow trTh = new TableRow(this);

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

感谢您的任何帮助。

I have two activities which I want to combine with a FragmentPagerAdapter.
I followed a tutorial and everything works great with the test classes. However, as mentioned I want to use two previously made Activities in that horizontal slider.

At the moment it looks like this:

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 and CheatMetaView used to be Activities but now are Fragments ("extends Fragment"). I don't need to know how I can still pass information to those (new) Fragments as I can not use "intent" anymore how I used to pass information between Activities.

Also creating new elements in the code of these classes is being marked as an error now. Like this line of code:

TableRow trTh = new TableRow(this);

How can I pass information to those classes and how do I have to change the code to create a new TableRow in the code of the former Activity class?

Thanks for any help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人间不值得 2024-12-16 12:07:49

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

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

Re your first question: Instead of using Fragment.instantiate, create a newInstance method for each fragment that can take the information you wish to pass as a parameter. See the page below for an example (search for newInstance):

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文