2013-04-24 21 views
26

Tôi đang cố gắng cho một giờ cuối cùng để lưu một số nguyên trong ứng dụng Android của tôi. Tôi đọc rằng điều này có thể được thực hiện bằng cách sử dụng SharedPreferences. Tuy nhiên tôi không hiểu tại sao nó có vẻ rất khó hiểu để làm như vậy.Android SharedPreferences, làm thế nào để lưu một biến int đơn giản

Làm cách nào tôi có thể lưu biến int? Và sau đó khi tôi chạy lại ứng dụng, làm thế nào tôi có thể tương tác với biến này một lần nữa?

+0

** Cách tiếp cận đơn giản ** sẽ là sử dụng thư viện này: http://github.com/viralypatel/Android -SharedPreferences-Helper ... chi tiết kỹ thuật mở rộng trong [answer] (http://stackoverflow.com/a/35232248/1957401) ... – AndroidMechanic

+0

Kiểm tra điều này ra http://www.gadgetsaint.com/go/ xb023 – ASP

Trả lời

50
SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE); 
SharedPreferences.Editor editor = sp.edit(); 
editor.putInt("your_int_key", yourIntValue); 
editor.commit(); 

các bạn có thể lấy nó như:

SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE); 
int myIntValue = sp.getInt("your_int_key", -1); 

Giao diện SharedPreference cung cấp cho bạn truy cập vào một tập tin xml, và là một cách dễ dàng để sửa đổi nó qua biên tập của nó. Tệp được lưu trữ trong /data/data/com.your.package/shared_prefs/ và bạn có thể truy cập tệp này qua số này SharedPreference API

+2

hmm bạn có thể đặt một số ý kiến ​​để hiểu những gì đang xảy ra ở đó, gây ra tôi không hiểu ví dụ? Biến số nào? "Your_prefs" là gì. 0 cạnh đó là gì? "Your_int_key" – donparalias

+1

Thực ra, bạn cũng cần cung cấp giá trị mặc định cho 'getInt' được trả về khi không thể tìm thấy' int' bằng khóa 'your_int_key'. Một cái gì đó như thế này: 'int myIntValue = sp.getInt (" your_int_key ", -1);' trong đó -1 là giá trị mặc định. – zbr

+2

Tôi đoán rằng 'clearNotificationsSP' trong ví dụ đầu tiên phải là' sp', đúng không? – Scorchio

6

Đây là ví dụ về đặt tùy chọn Boolean. Bạn có thể đi với Integer cũng có.

SharedPreferences prefs = PreferenceManager 
        .getDefaultSharedPreferences(this); 
      if (!prefs.getBoolean("firstTime", false)) { 

       SharedPreferences.Editor editor = prefs.edit(); 
       editor.putBoolean("firstTime", true); 
       editor.commit(); 
      } 

Hy vọng điều này có thể hữu ích.

10
public void SaveInt(String key, int value){ 
     sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     SharedPreferences.Editor editor = sharedPreferences.edit(); 
     editor.putInt(key, value); 
     editor.commit(); 
} 
public void LoadInt(){ 
     sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     savedValue = sharedPreferences.getInt("key", 0); 
} 

Nếu bạn muốn lưu biến ở đâu đó, bạn phải viết SaveInt ("khóa", 5); Với điều này, bạn sẽ lưu giá trị 5, trong khi giá trị mặc định đầu tiên là 0. Nếu bạn muốn tải nó và sử dụng nó trong một hoạt động khác, bạn phải viết cả hai phương thức này và gọi hàm LoadInt(); nơi bạn cần biến. SaveValue là số nguyên được xác định trước (số này cần được khai báo ở mọi nơi bạn muốn sử dụng biến đã lưu)

+0

https://gist.github.com/john1jan/b8cb536ca51a0b2aa1da4e81566869c4 – John