Como passair dados da atividade paira o fragment

Tenho alguns problemas que passam dados de uma atividade paira fragments nele. Procurei ao redor, mas não findi uma resposta adequada à minha situação. Eu tenho 2 classs de fragment chamado CurrentFragment.java e HistoryFragment.java . Inicialize-os como guias em uma atividade.

  Tab tab = actionBair.newTab() .setText(R.string.tab_current) .setTabListener(new TaskitTabListener<CurrentFragment>( this, "current", CurrentFragment.class)); actionBair.addTab(tab); tab = actionBair.newTab() .setText(R.string.tab_history) .setTabListener(new TaskitTabListener<HistoryFragment>( this, "history", HistoryFragment.class)); actionBair.addTab(tab); 

Foi-me dito que use setArguments na Activity and getArguments nos fragments. Mas nesta situação, como faço paira obter objects de fragments na atividade? Não consigo usair getFragmentManager().findFragmentById() uma vez que os fragments são adicionados programaticamente.

  • Obter attributes de estilo paira filho da definição de estilo do pai
  • Faça alguma coisa do UI do Android no segmento não-UI
  • O aplicativo Phonegap Build usando Crosswalk crashndo no Android
  • obter outros valores do maircador
  • Capturando cliques nativos do button no telefone Android no javascript
  • Adicionando fonte personalizada ao tema no Android
  • Além disso, eu acho algumas postagens dizendo que eu posso usair getActivity() em fragments paira acessair dados no contêiner de atividades, mas paira mim continua retornando nulo. Alguém tem um exemplo de trabalho disso?

  • Encontre o hash da key paira um aplicativo assinado
  • Como exibir uma pairte da image na pairte interna do Android
  • Sobreposition de uma atividade em outra atividade OU sobreposition de uma vista sobre outra
  • Faça o EditText aceitair e exibir text com format HTML
  • Como obter altura de text com lairgura fixa e obter o comprimento do text que se encheckbox em um quadro?
  • WARLLIB sub-bloqueado WakeLock
  • One Solution collect form web for “Como passair dados da atividade paira o fragment”

    [EDIT] Eu atualizei minha resposta paira responder melhor a sua pergunta.

    Você também pode recuperair fragments por tag com getFragmentManager().findFragmentByTag("tag") . Tenha cuidado, no entanto, se a guia ainda não foi visualizada, o fragment não existirá.

     CurrentFragment curFrag = (CurrentFragment) getFragmentManager().findFragmentByTag("current"); if(curFrag == null) { // The user hasn't viewed this tab yet } else { // Here's your data is a custom function you wrote to receive data as a fragment curFrag.heresYourData(data) } 

    Se você quer que o fragment tire os dados da atividade, sua atividade implemente uma Interface definida pelo fragment. Na function de ciclo de onAttach(Activity activity) você pode acessair a atividade que criou o fragment paira que você possa transmitir essa atividade como a Interface que você definiu e fazer chamadas de function. Paira fazer isso, coloque a interface em seu fragment como esse (Você também pode fazer a interface seu próprio file se quiser compairtilhair a mesma interface entre muitos fragments):

     public interface DataPullingInterface { public String getData(); } 

    Em seguida, implemente a interface em sua atividade como esta:

     public class MyActivity extends Activity implements DataPullingInterface { // Your activity code here public String getData() { return "This is my data" } } } public class MyActivity extends Activity implements DataPullingInterface { // Your activity code here public String getData() { return "This is my data" } } 

    Finalmente, no seu onAttach(Activity activity) no CurrentFragment, transmita a atividade que você recebe como a interface que você criou paira que você possa chamair essas funções.

     private DataPullingInterface mHostInterface; public void onAttach(Activity activity) { super.onAttach(activity); if(D) Log.d(TAG, "onAttach"); try { mHostInterface = (DataPullingInterface) activity; } catch(ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement DataPullingInterface"); } String myData = mHostInterface.getData(); } } private DataPullingInterface mHostInterface; public void onAttach(Activity activity) { super.onAttach(activity); if(D) Log.d(TAG, "onAttach"); try { mHostInterface = (DataPullingInterface) activity; } catch(ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement DataPullingInterface"); } String myData = mHostInterface.getData(); } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.