我创建了一个 MainActivity,它包含 3 个可滚动的选项卡(通过使用 ViewPager)。现在这 3 个选项卡中的每一个都是一个片段。另外,我正在使用 ActionBarSherlock (ABS)。
对于第一个片段,我创建了以下类:
public class Fragment_1 extends SherlockFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View v = inflater.inflate(R.layout.fragment1, container, false);
return v;
/* R.layout.fragment1 only contains a TextView. */
}
}
对于第二个片段,我想扩展一个 FragmentActivity,如下所示。
public class Fragment_2 extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment2);
}
}
第三个片段与第一个片段相同。
但是当我启动应用程序时,它崩溃了。那么,我在为 Fragment_2 类扩展 FragmentActivity 时错了吗?将 FragmentActivity 甚至 Activity 扩展到片段类是否违法?如果不是,这里有什么问题?
谢谢。
编辑: @CommonsWare 的回答后,我更新了我的课程如下:
public class Fragment_2 extends SherlockFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button send = (Button) findViewById(R.id.bSend); //Error at this line
//some error free code
FragmentTransaction t = getSupportFragmentManager().beginTransaction(); //Error at this line
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View v = inflater.inflate(R.layout.fragment2, container, false);
return v;
}
我最后的两个问题是:
- 我应该如何在 Fragment_2 类中访问我的 R.id.bSend 按钮。
- Eclipse 建议将 getSupportFragmentManager() 更改为 getFragmentManager()。这样改好吗?
谢谢!