2015-02-27 6 views
12

Jestem uczniem Androida. Muszę wykonać dowolny (losowy) identyfikator UUID i zapisać do bazy danych jako klucz podstawowy. Używam UUID.randomUUID.toString() ten kod w zdarzeniu kliknij przycisk. UUID został skutecznie zrealizowany. Jednak w przypadku, gdy dotknę ponownie haczyka, muszę wykonać kolejny UUID. W każdym razie mój kod nie tworzy nowego UUID. Ktoś pomóż mi zrobić nieregularny identyfikator UUID po kliknięciu przycisku catch.jak utworzyć losowy UUID w Androidzie, gdy wydarzenie z przyciskiem kliknięcia ma miejsce?

Oto mój kod:

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) { Zgaduję, że masz to w klasie, a nie w metodzie? uniqueId jest ustawiony, nie utworzy nowego ze względu na powyższą linię –

Odpowiedz

33

Pierwszy raz intialise zmienną i następnym razem, gdy przycisk kliknij go nie uzyskać wartość null

Usuń jeśli stanie z tego

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

użytkowania tego

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

Twój zerowy czek na uniqueId przyczyną problemu.

po kliknięciu przycisku po raz pierwszy uniqueId ma wartość NULL i generowany jest nowy identyfikator UUID. Ale gdy klikniesz go następnym razem, unikalny identyfikator nie będzie mieć wartości NULL, więc nie zostanie wygenerowany nowy identyfikator UUID.

2

Jesteś wyraźnie unikając tworzenia nowego UUID przez:

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

Usuń zaznaczenie.

Powiązane problemy