Tecnologia do Blogger.
RSS

[androidbrasil-dev] onPause e onResume emFragmentPagerAdapter

Bom dia todos,

estou utlizando o FragmentPageAdapter e não estou conseguindo pegar os dados que preciso no meu onPause e no onResume do meu Fragment.

Pelos teste que fiz o Fragment só entra em onPause quando eu fecha a Activity e só entra em onResume quando o fragment é criado, quando mudo do primeiro para o segundo meu fragment não entra em onPause.

Como faço para que isso aconteça?

Segue minha classe:

package loadti.com.br.loadmobile.views;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;

import com.gc.materialdesign.widgets.Dialog;

import it.neokree.materialtabs.MaterialTab;
import it.neokree.materialtabs.MaterialTabHost;
import it.neokree.materialtabs.MaterialTabListener;
import loadti.com.br.loadmobile.Fragments.FragCabPedido;
import loadti.com.br.loadmobile.Fragments.FragDadosUser;
import loadti.com.br.loadmobile.Fragments.FragFinanceiroPedido;
import loadti.com.br.loadmobile.Fragments.FragItensPedido;
import loadti.com.br.loadmobile.Fragments.FragObservacaoUser;
import loadti.com.br.loadmobile.Serealizable.PerfilUserSerial;
import loadti.com.br.loadmobile.Serealizable.UsuarioSerial;
import loadti.com.br.loadmobile.Fragments.FragDadosUser.callbackDadosUser;


/**
 * Created by TI on 26/03/2015.
 */
public class ContainerUsuario extends ActionBarActivity implements MaterialTabListener, callbackDadosUser {

    private UsuarioSerial usuario;
    MaterialTabHost tabHost;
    ViewPager pager;
    ViewPagerAdapterUsuario adapter;

    /*Fragments*/
    private FragDadosUser fragDadosUser;
    private FragObservacaoUser fragObservacaoUser;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.container_usuario);

        /*Instancia o objeto Usuario*/
        usuario = new UsuarioSerial();

        ativarTabs();

    }

    private void ativarTabs() {

/* Ativa a navegacao por tabs */


        Toolbar barUsuario = (Toolbar) this.findViewById(R.id.toolbarCadUser);
        if (barUsuario != null) {
            this.setSupportActionBar(barUsuario);
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            getSupportActionBar().setTitle(R.string.cadUser);
            getSupportActionBar().setDisplayShowTitleEnabled(true);

            tabHost = (MaterialTabHost) this.findViewById(R.id.tabHostCadUser);
            pager = (ViewPager) this.findViewById(R.id.pagerCadUser);
            // inicializa o pager view pager
            adapter = new ViewPagerAdapterUsuario(getSupportFragmentManager());
            pager.setAdapter(adapter);
            pager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {


                @Override
                public void onPageSelected(int position) {
                      /*Quando o usuario cliar muda a guia*/
                    tabHost.setSelectedNavigationItem(position);

                }

            });

            // insert all tabs from pagerAdapter data
            for (int i = 0; i < adapter.getCount(); i++) {
                tabHost.addTab(tabHost.newTab().setText(adapter.getPageTitle(i)).setTabListener(this));
            }


        }

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_usuario, menu);
        return true;
    }

    /*Item do Menu*/
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {

            case R.id.salvar_usuario: /*Salvar usuario*/

                // salvarUsuario();
                return true;

            case R.id.cancelar_usuario: /*Desiste de incluir o usuario*/
                /*Cancela inclusao*/
                 cancelarIncluir();

                return true;
        }


        return super.onOptionsItemSelected(item);
    }

    /*Implementacao da interface do Fragmento FragDadosUser*/
    @Override
    public UsuarioSerial onUsuario() {
        return usuario;
    }

    /*Metodo que veriifca se o usuario preciosnou o botao voltar do tablet*/
    @Override
    public void onBackPressed() {

        /*O Usuario esta em edicao*/
        if (usuario.isUpdate()) {

            AlertDialog.Builder alerta = new AlertDialog.Builder(ContainerUsuario.this);
            alerta.setTitle("Atenção");
            alerta.setMessage(R.string.sair_sem_salvar);
            alerta.setCancelable(false);
            alerta.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                    usuario = new UsuarioSerial();
                    usuario.setPerfil(new PerfilUserSerial());
                    usuario.setUpdate(false);

                }
            });

            alerta.setNegativeButton("Não", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                    dialog.dismiss();

                }
            });

            AlertDialog alert = alerta.create();
            alert.show();


        }


    }

    @Override
    protected void onResume() {
        super.onResume();
        /*Verifica se o usuario esta em edicao*/
        if (usuario.getId_usuario() == 0) {

            usuario.setUpdate(true);

        }
    }

    /*Cancela a inclusao do usuario*/
    private void cancelarIncluir() {

        AlertDialog.Builder alert = new AlertDialog.Builder(ContainerUsuario.this);
        alert.setTitle("Atenção");
        alert.setMessage(R.string.sair_sem_salvar);
        alert.setCancelable(false);
        alert.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

                usuario = new UsuarioSerial();
                usuario.setPerfil(new PerfilUserSerial());
                usuario.setUpdate(false);
                finish();


            }
        });
        alert.setNegativeButton("Não", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

                dialog.dismiss();

            }
        });

         AlertDialog alerta = alert.create();
        alerta.show();

    }

    /*Metodos para controlar as tabs*/
    @Override
    public void onTabSelected(MaterialTab tab) {

        pager.setCurrentItem(tab.getPosition());

    }

    @Override
    public void onTabReselected(MaterialTab tab) {

    }

    @Override
    public void onTabUnselected(MaterialTab tab) {

    }


    private class ViewPagerAdapterUsuario extends FragmentPagerAdapter {

        public ViewPagerAdapterUsuario(FragmentManager fm) {
            super(fm);
        }

        public Fragment getItem(int num) {
            switch (num) {
                case 0:
                    Log.d("ContainerPedido", "Retorno FragCabPedidos" + num);
                    fragDadosUser = new FragDadosUser();
                    return fragDadosUser;

                case 1:
                    Log.d("ContainerPedido", "Retorno FragItens" + num);
                    fragObservacaoUser = new FragObservacaoUser();
                    return fragObservacaoUser;
                default:
            }
            return null;

        }


        @Override
        public int getCount() {
            return 2;
        }

        @Override
        public CharSequence getPageTitle(int position) {


            switch (position) {
                case 0:
                    Log.d("ContainerUsuario", "Retorno" + position);
                    return "Dados do Usuário";


                case 1:
                    Log.d("ContainerUsuario", "Retorno" + position);
                    return "Observação";


                default:


            }

            return null;

        }


    }


}























--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário