将 Activity 类更改为 Fragment(使用 FragmentPagerAdapter)
我有两个活动想要与 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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
关于您的第一个问题:不要使用 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