¿Cómo crear un UUID aleatorio en Android cuando ocurre un evento de clic de botón?

1 minuto de lectura

avatar de usuario
Raj de Inno

Soy aprendiz de Android. Necesito hacer un UUID aleatorio y almacenarlo en la base de datos como clave principal. Estoy utilizando UUID.randomUUID.toString() este código en el evento de clic de botón. El UUID se ha hecho efectivamente de manera interesante. Sin embargo, en caso de que haga clic en el botón una vez más, necesito crear otro UUID. En cualquier caso, mi código no genera un nuevo UUID. Alguien, por favor, ayúdame a hacer un UUID irregular cuando hago clic en capturar.

Aquí está mi código:

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

  • if(uniqueId == null) { ¿Supongo que tienes eso en la clase en lugar del método? se establece uniqueId, no va a crear uno nuevo debido a la línea anterior

    – Thomas Nairn

    27 de febrero de 2015 a las 17:07


La primera vez que inicia la variable y la próxima vez que hace clic en el botón no obtiene un valor nulo

Eliminar si la condición de este

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

Utilizar este

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

Está evitando explícitamente la creación de un nuevo UUID al:

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

Retire el cheque.

Su cheque nulo para uniqueId causa el problema.

cuando haces clic en el botón por primera vez uniqueId es nulo y se genera un nuevo UUID. Pero cuando hace clic en él la próxima vez, uniqueId no es nulo, por lo que no se genera un nuevo UUID.

¿Ha sido útil esta solución?