如何从Fragment启动子Activity?

3

我正在使用Fragment活动来替代Tab Group活动。像这样:

public class TabGroup1Activity extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    if (container == null) {

        return null;
    }

    Intent intent = new Intent(getActivity(), HomeActivity.class);
    getActivity().startActivity(intent);

    return (RelativeLayout) inflater.inflate(R.layout.home, container,
            false);
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}
}

IT启动活动不作为子级启动(以全屏方式启动),但我不知道如何作为子级启动。

请帮助我...

1个回答

0

Activities(活动)被设计为占据整个屏幕,而Fragments(片段)被设计为占据全部、部分或不占据屏幕。您不应该为您的Activity扩展Fragment,而应该使用以下方法。

public class TabGroup1Activity extends FragmentActivity {

你不想在FragmentActivity中启动一个Activity,而是需要创建一个新的Fragment并将其添加到TabGroup1Activity的布局容器中,使用getSupportFragmentManager()getFragmentManager()以及FragmentTransaction。请参考http://developer.android.com/training/basics/fragments/creating.html

这是错误的,我们可以调整活动的大小,并且也可以创建像对话框一样的浮动活动。 - Abhijit Chakra
@Abhijit 谷歌建议您使用Fragment来处理仅占用部分(或不占用)屏幕的UI元素。他们建议您将其用于对话框、选项卡组等。http://android-developers.blogspot.com/2011/02/android-30-fragments-api.html。http://developer.android.com/reference/android/app/TabActivity.html。http://developer.android.com/reference/android/app/DialogFragment.html。因此,您可以在非全屏模式下使用`Activity`,但这不是最佳实践。请下次阅读文档。 - Steven Byle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接