adrianfanjul / NavigationPractica

0 stars 0 forks source link

try catch #1

Closed manelcc closed 2 years ago

manelcc commented 2 years ago

@adrianfanjul no hace falta envolver el LiveData en un try{}catch try { showUser(user); }catch (Exception e){ Log.e(TAG,getString(R.string.home_user_error)); } Me imagino que lo que te pasa es que el liveData observa desde el inicio y el valor es nulo. Hay 2 opciones o en la instancia del mutable ya le damos un valor o ponemos un pequeño control en el observer del LiveData. OPCION 1 MutableLiveData(new User())=> Ojo tendremos que ponerle al dominio User el getPassword devuelva un empty y no un null y lo mismo para el usuario. OPCION 2 Mas sencilla simplemente haz el control en el observer viewModel.getUser().observe(getViewLifecycleOwner(), this::showUser); private void showUser(@Nullable User user) { if (user==null) return; => Si el valor es nulo no hago nada. Snackbar.make(requireActivity().findViewById(R.id.fragmentHomeOneLayout) ,getString( R.string.home_fragment_one_snackbar_text, user.getUsername(), user.getPassword()) , BaseTransientBottomBar.LENGTH_SHORT).show(); }

adrianfanjul commented 2 years ago

Ya esta solucionado usando la opción 2