web-dev-qa-db-fra.com

comment créer un UUID aléatoire dans Android lorsqu'un événement de clic de bouton se produit?

Je suis un apprenti sur Android. Je dois créer des UUID aléatoires et les stocker dans la base de données en tant que clé primaire. J'utilise UUID.randomUUID.toString () ce code dans l'événement de clic sur un bouton. Le UUID a été effectivement fait intéressant. Cependant, si je clique une nouvelle fois sur le bouton, je dois créer un autre UUID. Dans tous les cas, mon code ne crée pas de nouvel UUID. Quelqu'un, aide-moi à créer un UUID irrégulier lorsque je clique sur catch. 

Voici mon code:

String uniqueId = null;
showRandomId = (Button)findViewById(R.id.showUUID);
showRandomId.setOnClickListener(new View.OnClickListener() {
  public void OnClick(View v) {
    if(uniqueId == null) {
       uniqueId = UUID.randomUUID().toString();
    }
    int duration = Toast.LENGTH_SHORT;
    Toast toast = Toast.makeText(getBaseContext(), uniqueId, duration);
    toast.show(); 
  }
});
25
Raj De Inno

La première fois qu'il initialise la variable et la prochaine fois que vous cliquez sur le bouton, la valeur NULL n'est pas nulle

Supprimer si condition de cette

if(uniqueId == null) { 
uniqueId = UUID.randomUUID().toString(); 
}

Utilisez ceci

uniqueId = UUID.randomUUID().toString(); 
55
Fahim

Votre chèque nul pour uniqueId provoque le problème.

lorsque vous cliquez sur le bouton pour la première fois, la variable uniqueId est nulle et un nouvel UUID est généré. Mais lorsque vous cliquez dessus la prochaine fois, uniqueId n'est pas null, aucun nouvel UUID n'est généré.

5
dishan

Vous évitez explicitement la création d'un nouvel UUID en:

if(uniqueId == null) {
   uniqueId = UUID.randomUUID().toString();
}

Retirez le chèque.

3
Juanjo Vega

Lorsque vous comparez une chaîne, utilisez .equals ()

if(uniqueId.equals(null)) { 
    uniqueId = UUID.randomUUID().toString(); 
}
0
DaleJack