13

私はそれぞれ3つの断片と1つの主要な活動の3つのタブを持っています、そして、私はwifiネットワーク上のメッセージを送信するソケットを作成したいので、どこにコードを書くべきですか?その特定の断片クラスまたは主な活動では?フラグメントとアクティビティの主な違いは何ですか?どのコードをフラグメントで書くことができますか?

+0

チェックこのリンク:あなたは今、このようなレイアウトビューにアクセスすることができます)

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

4:

@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return result_view; } 

3)は、フラグメントのonCreateViewメソッド内でこのようなフラグメントレイアウトを膨らまこれはあなたを助けるかもしれない.. [フラグメント対活動] [1] [1]:http://stackoverflow.com/questions/10478233/android-need-some-clarifications-of-fragments-vs-activities-and-views –

+0

フラグメントが完全に独立しているわけではありません。ホストとしての活動アクティビティはそれ自身でインスタンス化できますが、私はそれが大きな違いだと思っています。 – LuckyMe

+0

[これは別のリンクであり、それは、あなたの質問に答える] [1] [1]:http://stackoverflow.com/questions/10477997/difference-between-activity-and-fragmentactivity –

答えて

15

もちろん、フラグメント内に任意のコードを書くことができますが、いくつか注意する必要があります。コンテキストやアクティビティに固有の何かを必要とするものにアクセスする際には、フラグメントのスーパーアクティビティへの参照を取得する必要があります。アクティビティ内の意図を作成中は、このような何かを:あなたはレイアウトからいくつかのことをアクセスしている場合も同様

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

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

しかし

フラグメントの内側にあなたはこのような何かを行う必要がありますフラグメントのファイル。次の手順を実行する必要があります。

1)フラグメント内のフラグメントの親レイアウトへのグローバル参照を取得します。例:

private LinearLayout result_view; 

2)onCreateメソッドの代わりにOnCreateViewメソッドを実装します。

layout_a = (LinearLayout) result_view 
      .findViewById(R.id.some_layout_id); 
+0

実際には、LAN経由でメッセージをブロードキャストするためにソケットを作成したいのですが、ブロードキャストイベントをリッスンするボタンがフラグメントの1つにあり、次にフラグメント内にブロードキャストメッセージコードを書き込むことはできますか? – Talib

+0

あなたは書くことができます。キャッチは何ですか? –

+0

魅力的な作品です。 –

関連する問題