2016-01-14 53 views
0

從Android Studio中的示例活動(選項卡式視圖)構建。 該活動的工作原理是讓一個微調器顯示一個選擇列表,當選擇一個時,它會生成一個新的片段 - 將一個片段編號傳遞給它,然後片段將其顯示在其文本小部件中。 我見過的大多數答案都集中在控制Fragment內部的小部件,但是我的代碼將接收數據並更新Fragments創建活動中的活動片段顯示。從其主活動中訪問當前可見的片段窗口小部件

我想解釋這一點,(目前爲調試),但掙扎。

我需要改變一個新的文本小部件上的文本,這個文本小部件放置在Fragment'textview10'的容器中,並且不管顯示的是什麼當前片段。

除此之外,更改文本所需的代碼位於處理程序接收來自另一個線程的消息。

好消息是處理程序正在接收字符串消息 - 但我無法確定如何在當前顯示的片段中獲得對調試文本小部件的引用。

以下都不是成功,但顯示了我正在嘗試在我需要顯示文本的點。

     PlaceholderFragment fragmentDemo = (PlaceholderFragment) 
         getSupportFragmentManager().findFragmentByTag("SOMETAG"); // The problem is the Tag is different for each fragment. 


       PlaceholderFragment instanceFragment= (PlaceholderFragment)getSupportFragmentManager().findFragmentById(R.id.container); 
       View v = instanceFragment.getView(); 

       debugtext = v.findViewById(R.id.textView10); // ERROR 

生成該片段是在OnItemSelectedListner爲其帶來的slected項目位置的基準旋轉器的代碼...

回答

0
getSupportFragmentManager().beginTransaction() 
.replace(R.id.container, PlaceholderFragment.newInstance(position + 1),"tag"+position) 
.commit(); 

PlaceholderFragment fragmentDemo = (PlaceholderFragment)getSupportFragmentManager().findFragmentByTag("tag"+position); 

PlaceholderFragment extends Fragment{ 
    private ViewGroup rootView; 
    onCreateView(){ 
     rooView = inflate(); 
     return rootView; 
    } 
    public ViewGroup getMyRootView(){ 
     return rootView; 
    } 
} 
View myFragmentView = fragmentDemo.getMyRootView(); 
+0

currentposition =位置; //上次創建的類引用 getSupportFragmentManager()。beginTransaction() .replace(R.id.container,PlaceholderFragment.newInstance(position + 1),「tag」+ position) .commit();已被添加,但如何使用fragmentDemo引用來獲取小部件 - 仍然沒有運氣 –

相關問題