片段和活动之间的核心区别是什么?哪些代码可以用片段写?

Tal*_*lib 15 android fragment android-intent android-layout android-fragments

我有三个标签,每个标签有三个片段和一个主要活动,我想创建套接字通过wifi网络发送消息,那么我应该在哪里编写代码呢?在那个特定的片段类或主要活动?

Say*_*san 16

当然你可以在片段中编写任何代码,但是你需要处理一些事情.在访问需要上下文或特定于某个活动的任何内容时,您需要获得对该片段的超级活动的引用,例如,在活动中创建一个intent时,您可以执行以下操作:

    Intent intent = new Intent(this,SomeActivity.class);
Run Code Online (Sandbox Code Playgroud)

但在片段内你必须做这样的事情:

    Intent intent = new Intent(super.getActivity(),SomeActivity.class);
Run Code Online (Sandbox Code Playgroud)

同样,如果您从片段的布局文件中访问某些内容.您需要执行以下步骤:

1)获取片段内片段的父布局的全局引用.例如

    private LinearLayout result_view;
Run Code Online (Sandbox Code Playgroud)

2)实现OnCreateView方法而不是onCreate方法.

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

        return result_view;
    }
Run Code Online (Sandbox Code Playgroud)

3)在片段的onCreateView方法内膨胀像这样的片段布局:

    result_view = (LinearLayout) inflater.inflate(
            R.layout.image_detail_pager, container, false);
Run Code Online (Sandbox Code Playgroud)

4)您现在可以访问这样的布局视图:

    layout_a = (LinearLayout) result_view
            .findViewById(R.id.some_layout_id); 
Run Code Online (Sandbox Code Playgroud)