2015-02-27 11 views
12

Sono un apprendista di Android. Ho bisogno di creare UUID arbitrario (casuale) e archiviare nel database come chiave primaria. Sto utilizzando UUID.randomUUID.toString() questo codice nell'evento Click del pulsante. L'UUID è stato efficacemente realizzato in modo interessante. Tuttavia, nel caso in cui tocchi di nuovo il fermo, devo fare un altro UUID. In ogni caso, il mio codice non sta facendo un nuovo UUID. Qualcuno, per favore, aiutami a creare un UUID irregolare quando clicco su catch.come creare UUID casuale in Android quando si verifica un evento click del pulsante?

Ecco il mio codice:

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(); 
    } 
}); 
+2

if (uniqueId == null) { Immagino che tu abbia quello nella classe piuttosto che il metodo? uniqueId è impostato, non ne creerà uno nuovo a causa della riga precedente –

risposta

33

prima volta intialise la variabile e quando si fa clic sul pulsante prossima volta non ottiene valore nullo

Rimuovere se la condizione da questa

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

Utilizzare questa

uniqueId = UUID.randomUUID().toString(); 
4

L'assegno nullo per uniqueId causa il problema.

quando si fa clic sul pulsante per la prima volta uniqueId è nullo e viene generato un nuovo UUID. Ma quando fai clic su nextId non è nullo, quindi non viene generato alcun nuovo UUID.

2

state evitando esplicitamente la nuova creazione UUID da:

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

rimuovere il controllo.

Problemi correlati