web-dev-qa-db-ja.com

ボタンクリックイベントが発生したときにAndroidでランダムUUIDを作成する方法?

私はAndroidの見習いです。ランダムなUUIDを作成し、主キーとしてデータベースに保存する必要があります。 ButtonクリックイベントでこのコードをUUID.randomUUID.toString()を利用しています。 UUIDは事実上興味深いものになりました。それでも、ボタンをもう一度クリックした場合は、別のUUIDを作成する必要があります。いずれにせよ、私のコードは新しいUUIDを作成していません。誰か、catchをクリックしたときに不規則なUUIDを作成するのを手伝ってください。

ここに私のコードがあります:

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(); 
  }
});
29
Raj De Inno

最初に変数を初期化し、次にボタンをクリックしたときにnull値を取得しません

これからif条件を削除

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

これを使って

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

uniqueIdのnullチェックが問題の原因です。

初めてボタンをクリックすると、uniqueIdがnullになり、新しいUUIDが生成されます。ただし、次にuniqueIdがnullでないときにクリックすると、新しいUUIDは生成されません。

5
dishan

次の方法で、新しいUUIDの作成を明示的に回避しています。

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

チェックを削除します。

3
Juanjo Vega