13

我有三個選項卡,每個都有三個片段和一個主要活動,並且我想創建通過WiFi網絡發送消息的套接字,所以我應該在哪裏編寫代碼?在那個特定的片段類或主要活動?片段與活動之間的核心區別是什麼?哪些代碼可以寫入片段?

+0

檢查該鏈接這可能會幫助你.. [片段與活動] [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(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); 
+0

實際上,我想創建套接字以便通過局域網廣播消息,但現在,我將在其中偵聽廣播事件的按鈕位於片段之一中,然後我可以在片段內寫入廣播消息代碼嗎? – Talib

+0

offcourse你可以寫。有什麼收穫? –

+0

工程就像一個魅力。 –