【问题标题】:Fragments within ActionBarActivityActionBarActivity 中的片段
【发布时间】:2014-07-05 21:50:18
【问题描述】:
我已经在几个小时内搜索了 ActionBarActivity 中的多个意图和片段的示例。我正在从 Deitel 系列和其他信息丰富的资源中学习 android 编程。我面临的障碍是从使用 Fragments 的两个意图的简单“Hello World”程序开始,但我从中学习的资源不包含扩展 ActionBarActivity 的示例,但它们都扩展了 Activity。
对我来说,障碍是使用其可用方法从 ActionBarActivity 中膨胀片段。如果我能完成这个简单的任务,我的学习曲线会非常出色。
【问题讨论】:
标签:
android
android-activity
fragment
【解决方案1】:
ActionBarActivity 扩展 FragmentActivity,扩展 Activity。所以,Activity 所做的所有事情,ActionBarActivity 也会这样做。
ActionBarActivity 提供对ActionBar 的访问和控制,而FragmentActivity 提供FragmentManager,用于管理您的Fragments。
ActionBarActivity 为您提供所有这些功能。
网络上有很多例子,这个网站是正确的起点。
【解决方案2】:
这是我认为你不明白的地方。
1。 ActionBarActivity 与 Activity
>
不用担心 ActionBarActivity 与 Activity。 ActionBarActivity 扩展了 Activity,因此所有在 Activity 中有效的代码都存在于 AcctionBarActivity 中。请检查此link。
2。通货膨胀
通常我所做的就是为我的每个片段创建一个单独的类,
public class Fragment1 extends Fragment{
// in the onCreateView I create a rootView & inflate.
final View rootview = inflater.inflate(R.layout.your_layout_file, container,false);
// Now you can use rootView to call all your Activity functions. Such as findView
//onClick etc.
return rootview;
3。在 MainActivity 中
这完全取决于您想要构建应用程序的方式。但当然你必须有一个 getCount 和 getItem 函数。像这样。
@Override
public Fragment getItem(int i){
switch (i) {
case 0:
return new Fragment1();
case 2:
return new Fragment2();
}
}
@Override
public int getCount() {
return 2;
}