2015-02-27 10 views
12

Tôi là người học việc cho Android. Tôi cần phải tạo UUID tùy ý (ngẫu nhiên) và lưu vào cơ sở dữ liệu làm khóa chính. Tôi đang sử dụng UUID.randomUUID.toString() mã này trong sự kiện bấm nút. UUID đã được thực hiện một cách hiệu quả thú vị. Tuy nhiên, trong trường hợp tôi khai thác một lần nữa, tôi cần phải tạo một UUID khác. Trong mọi trường hợp, mã của tôi không tạo UUID mới. Ai đó hãy giúp tôi tạo một UUID bất thường khi tôi nhấp vào bắt.cách tạo UUID ngẫu nhiên trong Android khi sự kiện nhấp nút xảy ra?

Đây là mã của tôi:

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) { Tôi đoán bạn có trong lớp chứ không phải là phương pháp? uniqueId được thiết lập, nó sẽ không tạo ra một cái mới do dòng trên –

Trả lời

33

Lần đầu tiên nó intialise biến và thời gian tiếp theo khi bạn bấm nút nó không nhận được giá trị null

Remove nếu tình trạng từ

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

này sử dụng này

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

kiểm tra null của bạn cho uniqueId gây ra vấn đề.

khi bạn nhấp vào nút lần đầu tiên uniqueId là rỗng và UUID mới được tạo. Nhưng khi bạn nhấp vào nó lần sau uniqueId không phải là null, Vì vậy, không có UUID mới được tạo ra.

2

Bạn đang tránh một cách rõ ràng việc tạo ra UUID mới bằng cách:

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

Tháo kiểm tra.

Các vấn đề liên quan