片段可以扩展片段活动吗?[Android]产品

Bor*_*ain 1 android android-fragments android-activity android-fragmentactivity

我创建了一个MainActivity,它包含3个可滚动的选项卡(使用ViewPager).现在,这3个标签中的每一个都是片段.另外,我正在使用ActionBarSherlock(ABS).

对于1st Fragment,我创建了以下类:

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. */
    }
}
Run Code Online (Sandbox Code Playgroud)

对于第二个片段,我想扩展FragmentActivity,如下所示.

public class Fragment_2 extends FragmentActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.fragment2);
        }
}
Run Code Online (Sandbox Code Playgroud)

第3个片段与第一个片段相同.

但是当我启动应用程序时,它会崩溃.那么,我是否在为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;
}
Run Code Online (Sandbox Code Playgroud)

我最后两个问题是:

  1. 我应该如何访问Fragment_2类中的R.id.bSend按钮.
  2. Eclipse提出了将getSupportFragmentManager()更改为getFragmentManager()的建议.那改变了吗?

谢谢!

Com*_*are 9

将FragmentActivity甚至Activity扩展到片段类是不合法的吗?

Fragment是一个Java类.您的片段实现(用作您的页面ViewPager)必须Fragment直接或间接地继承.

Activity不继承自Fragment.FragmentActivity不继承自Fragment.因此,你不能继承ActivityFragmentActivity不知何故继承Fragment.