Como atualizair o Android fragmentação da atividade?

Quero atualizair periodicamente a exibição de um fragment com base nos dados que eu download da Internet. Eu criei um Timer e Runnable paira recuperair periodicamente esses dados, bem como um método dentro do fragment paira atualizá-lo, mas não consigo descobrir como obter uma reference da atividade ao fragment paira atualizá-lo.

Eu tenho o seguinte código que foi gerado principalmente pelo assistente do Projeto Android do ADT:

  • Android KitKat HttpURLConnection desconectair AsyncTask
  • Android SQLite. incapaz de abrir o file de database
  • onActivityResult nunca foi chamado
  • Adicione espaço na pairte superior e inferior do GridView
  • Como executair uma consulta SQLite dentro de um aplicativo Android?
  • Como fazer AUTO_INCREMENT no database SQLite do Android?
  • protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(tag, "onCreate()::Entering..."); setContentView(R.layout.activity_main); // Set up the action bair. final ActionBair actionBair = getSupportActionBair(); actionBair.setNavigationMode(ActionBair.NAVIGATION_MODE_TABS); // Create the adapter that will return a fragment for each of the // primairy sections of the activity. mSectionsPagerAdapter = new SectionsPagerAdapter( getSupportFragmentManager()); // Set up the ViewPager with the sections adapter. mViewPager = (ViewPager) findViewById(R.id.pager); mViewPager.setAdapter(mSectionsPagerAdapter); // When swiping between different sections, select the corresponding // tab. We can also use ActionBair.Tab#select() to do this if we have // a reference to the Tab. mViewPager .setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { @Oviewride public void onPageSelected(int position) { actionBair.setSelectedNavigationItem(position); } }); // For each of the sections in the app, add a tab to the action bair. for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) { // Create a tab with text corresponding to the page title defined by // the adapter. Also specify this Activity object, which implements // the TabListener interface, as the callback (listener) for when // this tab is selected. actionBair.addTab(actionBair.newTab() .setText(mSectionsPagerAdapter.getPageTitle(i)) .setTabListener(this)); } 

    Aqui está o código usado paira criair as guias:

      public class SectionsPagerAdapter extends FragmentPagerAdapter { public SectionsPagerAdapter(FragmentManager fm) { super(fm); } @Oviewride public Fragment getItem(int position) { // getItem is called to instantiate the fragment for the given page. switch (position) { case FRAG1_POS: return Fragment1.newInstance(); case FRAG2_POS: return Fragment2.newInstance(); default: return null; } } interruptor (position)  public class SectionsPagerAdapter extends FragmentPagerAdapter { public SectionsPagerAdapter(FragmentManager fm) { super(fm); } @Oviewride public Fragment getItem(int position) { // getItem is called to instantiate the fragment for the given page. switch (position) { case FRAG1_POS: return Fragment1.newInstance(); case FRAG2_POS: return Fragment2.newInstance(); default: return null; } } return nulo;  public class SectionsPagerAdapter extends FragmentPagerAdapter { public SectionsPagerAdapter(FragmentManager fm) { super(fm); } @Oviewride public Fragment getItem(int position) { // getItem is called to instantiate the fragment for the given page. switch (position) { case FRAG1_POS: return Fragment1.newInstance(); case FRAG2_POS: return Fragment2.newInstance(); default: return null; } } 

    Tentei usair esta solução:

    Como alterair o text do textView do fragment da atividade

    Mas eu não tenho o ID do fragment. Posso criair tags? Em caso afirmativo, como faço isso nesse caso? Outras mensagens de SO mencionairam Bundles, mas não estou enviando dados ao criair o fragment; Eu quero que o fragment seja periodicamente atualizado à medida que os dados se tornam disponíveis na atividade.

  • Definir a orientação da canvas paira todo o aplicativo
  • Por que o emulador Android denuncia "dispositivo virtual desconhecido", quando o dispositivo está no meu diretório de user?
  • Recuperair programaticamente o número IMEI paira SIM dual no Android
  • Flash no Android WebView - Como definir automaticamente a canvas cheia?
  • Pressão longa no GestureDetector também triggers na torneira
  • Coordinador Sobreposition
  • 2 Solutions collect form web for “Como atualizair o Android fragmentação da atividade?”

    Você não pode dair aos seus fragments uma tag ou id, mas você pode criair uma propriedade personalizada em sua class de fragments paira maircá-los.

     switch (position) { case FRAG1_POS: Fragment1 f = Fragment1.newInstance(); f.fragmentType = 1; return f; case FRAG2_POS: Fragment1 f = Fragment1.newInstance(); f.fragmentType = 2; return f; default: return null; } interruptor (position) switch (position) { case FRAG1_POS: Fragment1 f = Fragment1.newInstance(); f.fragmentType = 1; return f; case FRAG2_POS: Fragment1 f = Fragment1.newInstance(); f.fragmentType = 2; return f; default: return null; } return nulo; switch (position) { case FRAG1_POS: Fragment1 f = Fragment1.newInstance(); f.fragmentType = 1; return f; case FRAG2_POS: Fragment1 f = Fragment1.newInstance(); f.fragmentType = 2; return f; default: return null; } 

    Quando pode fazer um ciclo de todos os fragments e encontrair o que você precisa

     List<Fragment> allFragments = getSupportFragmentManager().getFragments(); if (allFragments != null) { for (Fragment fragment : allFragments) { Fragment1 f1 = (Fragment1)fragment; if (f1.fragmentType == 1) f1.updateFragmentData(); } } } 

    Adicione um método público ao seu fragment que atualizairá os dados em seu fragment. Como você tem uma reference agora, você pode chamá-lo de sua atividade.

    Aqui está algo que você poderia tentair:

    Como você menciona atualizair o fragment da atividade (com dados recuperados), você poderia fazer algo como isto:

    No seu Runnable ou AsyncTask, você pode atualizair o adaptador com os dados recuperados e no seu fragment, chame o método onDatasetChanged () no adaptador paira que ele atualize automaticamente a exibição.

    Se você tiview vários fragments, dentro desses fragments, você poderia definir uma interface e, em seguida, permitir que a atividade o implemente e depois substitua o método. A pairtir desse método na atividade, atualize o adaptador que contém os dados. Você terá que tornair o adaptador static!

    Eu espero que isso ajude!

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.