16

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

4

1 回答 1

16

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

    Intent intent = new Intent(this,SomeActivity.class);

但在一个片段中,你将不得不做这样的事情:

    Intent intent = new Intent(super.getActivity(),SomeActivity.class);

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

1)在片段中获取对片段父布局的全局引用。例如

    private LinearLayout result_view;

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

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

        return result_view;
    }

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

    result_view = (LinearLayout) inflater.inflate(
            R.layout.image_detail_pager, container, false);

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

    layout_a = (LinearLayout) result_view
            .findViewById(R.id.some_layout_id); 
于 2013-08-07T10:57:22.650 回答