Подтвердить что ты не робот

Как создать случайный UUID в Android, когда происходит событие нажатия кнопки?

Я ученик Android. Мне нужно сделать случайный UUID и сохранить в базе данных в качестве первичного ключа. Я использую UUID.randomUUID.toString() этот код в событии нажатия кнопки. UUID был эффективно сделан интересно. Тем не менее, в случае, если я нажимаю кнопку еще раз, мне нужно сделать еще один UUID. В любом случае мой код не создает новый UUID. Кто-нибудь, пожалуйста, помогите мне сделать неправильный UUID, когда я нажимаю кнопку catch.

Вот мой код:

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

Ответ 1

В первый раз он инициализирует переменную и в следующий раз, когда вы нажимаете кнопку, она не получает нулевое значение

Удалить, если условие из этого

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

Используйте этот

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

Ответ 2

Ваша нулевая проверка для uniqueId вызывает проблему.

когда вы нажимаете кнопку в первый раз, uniqueId имеет значение null и генерируется новый UUID. Но когда вы нажимаете его в следующий раз, когда uniqueId не является нулевым, то никакой новый UUID не генерируется.

Ответ 3

Вы явно избегаете создания нового UUID с помощью:

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

Удалите чек.

Ответ 4

Когда вы сравниваете строку, используйте .equals()

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