Vérifiez que getArguments a certaines données à récupérer

Android Studio 0.8.7

J'ai la fonction suivante qui définit un argument dans le fragment:

 public static Fragment newInstance(UUID uuid) {
        Log.d(TAG, "newInstance: " + uuid);

        Bundle arguments = new Bundle();

        arguments.putSerializable(EXTRA_JOB_ID, uuid);
        DetailFragment fragment = new DetailFragment();
        fragment.setArguments(arguments);

        return fragment;
    }

Dans mon onCreate() je récupère les arguments à l'aide de getArguments comme ceci:

@Override
public void onCreate(Bundle savedInstanceState) {
    Log.d(TAG, "onCreate()");
    super.onCreate(savedInstanceState);

    /* Get the arguments from the fragment */
    UUID uuid = (UUID)getArguments().getSerializable(EXTRA_JOB_ID);
    .
    .
}

Cependant, parfois, il y a une situation où je ne serai pas l'envoi de tous les arguments pour être récupérées, et mon programme va planter dans ce cas.

L'aide d'Intentions a la hasExtra méthode pour vérifier:

 if(getActivity().getIntent().hasExtra(Intent.EXTRA_TEXT)) {
            /* There is something to be retrieved */
        }

Je me demande si il y a quelque chose de similaire avec getArguments

Merci beaucoup à l'avance,

Probablement que vous souhaitez utiliser arguments.containsKey(EXTRA_JOB_ID)? Aussi, je pense que vous devez ajouter manuel null-check si la clé est là, mais ne contient pas de données.

OriginalL'auteur ant2009 | 2014-08-26