0 votos

Amigo tengo un problema con mi aplicacion. Al abrir la aplicacion y ingresar luego del registro, entro al activity main donde debe verse el HomeFragment pero no me aparece, se ven todos los fragments que estan en mi aplicacion a los que voy desde los iconos del menu menos el principal que me debe aparecer al abrir la aplicacion y no se en donde puedo tener el error. Agradeceria si me pueden ayudar gracias. Es importante que el fragment si se visualiza si lo llamo desde algun icono del menu, pero no aparece automatico al abrir. Espero tu ayuda

ESTE ES UNA PARTE DEL MAIN ACTIVITY

public class MainActivity extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener, HomeFragment.OnHomeFragmentListener {
    protected final String TAG = MainActivity.class.getSimpleName();
    public static final String INTENT_FILTER_INFO = MainActivity.class.getName() + ".INTENT_FILTER";
    private boolean isBroadcastReceiver = false;

    private DrawerLayout mDrawerLayout;

    private GPSTracker mGpsTracker = null;

    public static MainActivity myMain = null;

    private Fragment mFragment = null;

    private NavDrawerListAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getIntent().getExtras();
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        this.getSupportFragmentManager();

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.setDrawerListener(toggle);
        toggle.syncState();

        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);

        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerLayout.setDrawerListener(drawerListener);

        mGpsTracker = new GPSTracker(this);
        mGpsTracker.setGPSCallback(gpsCallback);

        licenseExpired();

    }

    private boolean myFrgmentAsHomeFragment(){

        return mFragment != null && mFragment instanceof HomeFragment;
    }
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
             boolean blnSignOut = false, blnMessageDispatcher = false;

        Fragment fragment = null;

        int id = item.getItemId();

        if (item==null) {
            fragment=new HomeFragment();
            getResources().getString(R.string.app_name);
        }

        else if (id == R.id.nav_place) {

                mDrawerLayout.closeDrawers();

                openTripTracker();

            } else if (id == R.id.nav_msg_dispatcher) {

                blnMessageDispatcher = true;

            } else if (id == R.id.nav_history) {

                fragment = new TripHistoryFragment();
            getResources().getString(R.string.trip_history);

            } else if (id == R.id.nav_msg_register) {

                fragment = new MessageLogFragment();
            getResources().getString(R.string.message_log);

            } else if (id == R.id.nav_profile) {

                fragment = new ProfileFragment();
            getResources().getString(R.string.profile);

            } else if (id == R.id.nav_settings) {

                return super.onOptionsItemSelected(item);

            } else if (id == R.id.nav_exit) {

                blnSignOut = true;

            }

            //case SignOut
            if (blnSignOut || blnMessageDispatcher) {

                //close drawer
                mDrawerLayout.closeDrawers();

                //log out
                if (blnSignOut) {
                    dialogSignOut();
                }
                //message to Dispatcher
                else if (blnMessageDispatcher) {

                    onMessageDispatcher();
                }

            } else if (fragment != null) {

                //swap fragment
                swapFragment(fragment);

            } else {
                Log.v(TAG, "Error in creating fragment");
            }

            DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
            drawer.closeDrawer(GravityCompat.START);
            return true;
        }


    private void swapFragment(Fragment fragment){
        try {
            FragmentTransaction t = getSupportFragmentManager().beginTransaction();
            t.replace(R.id.frame_container, fragment);
            t.commit();
            mFragment = fragment;
            //close drawer
            mDrawerLayout.closeDrawers();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

ESTA UNA PARTE DEL FRAGMENT

public class HomeFragment extends Fragment implements OnClickListener, OnMapReadyCallback {
   protected final String TAG = HomeFragment.class.getSimpleName();

   public interface OnHomeFragmentListener{
      void onTripTrackerClick();
   }

   private OnHomeFragmentListener listener;
   Timer timer;
   TimerTask timerTask;
   final Handler handler = new Handler();

   private Button btnShowTrip;
   private ToggleButton togDuty;
   private GoogleMap mMap;
   private boolean blnFirstMoveCamera = true;
   private ToggleButton togStrip;
   private int book;
   private Location loc;
   Bundle bundle;

   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
      View view = inflater.inflate(R.layout.fragment_home, container, false);
      init(view);
      setUpMapCallBack();
      return view;
   }

   private void init(View view){
      btnShowTrip = (Button)view.findViewById(R.id.btnShowTrip);
      btnShowTrip.setOnClickListener(this);

      togDuty = (ToggleButton)view.findViewById(R.id.tgDuty);
      togDuty.setOnClickListener(this);

      togStrip = (ToggleButton)view.findViewById(R.id.tgStrip);
      togStrip.setChecked(false);
      togStrip.setOnClickListener(this);
   }


   @Override
   public void onAttach(Activity activity) {
      super.onAttach(activity);

      if (activity instanceof OnHomeFragmentListener) {
         listener = (OnHomeFragmentListener) activity;
      }
   }

   @Override
   public void onDetach() {
      super.onDetach();
      stoptimertask();
      listener = null;
   }

   @Override
   public void onActivityCreated(Bundle savedInstanceState) {
      super.onActivityCreated(savedInstanceState);

      final boolean isDuty = AppController.getInstance().getSharedPrefHelper().getDriverStatus() == Common.DRIVER_STATUS.ON_DUTY ? true : false;
      updateDuty(isDuty);

      startTimer();

   }

 

preguntado por Raul Febres Dic 3, 2015 en Android

1 Respuesta

0 votos
Hola Raúl. ¿El elemento item llega a null? Si es así el if evita que entre al HomeFragment

De cualquier manera, mira a ver llega hasta el commit() el código cuando lo necesites.

Te dejo más información con pistas sobre posibles fallos: http://jarroba.com/programar-fragments-fragmentos-en-android/ y http://jarroba.com/libro-android-100-gratis/
respondido por Ramon [Admin] Dic 4, 2015