2011-07-20 28 views
7

Tôi muốn biết có thể lưu trữ mảng chuỗi trong SharedPreferences hay không. Trong ứng dụng của tôi tôi muốn, đặt tên để được lưu trữ. Tôi biết điều này có thể được thực hiện bằng cách sử dụng DB, tôi chỉ muốn biết liệu là nó có thể để lưu những người đặt tên là mảng của chuỗi trong SharedPreferences.Mảng chuỗi trong SharedPreferences

Trả lời

6

Bạn có thể lưu trữ bộ chuỗi bằng cách sử dụng SharedPreferences trong API cấp 11 trở lên. Xem getStringSet()putStringSet() ю

Ở cấp API trước 11 bạn có thể sử dụng một số loại hack. Ví dụ: nếu bạn cần lưu trữ chuỗi chuỗi dưới khóa "stringArray", bạn có thể lưu từng chuỗi từ mảng bằng cách sử dụng putString và các phím "stringArray.1", "stringArray.2", v.v.

+0

nhờ .... i cảm thấy điều này chắc chắn là sẽ giúp đỡ me.But là cách tốt để lưu trữ các chuỗi, nói chung ?? tôi có nghĩa là lưu trữ tập hợp các chuỗi trong các sở thích được chia sẻ chứ không phải trong DB? – Pravy

+1

Nếu bạn có một mảng nhỏ các chuỗi có thể dễ dàng hơn khi sử dụng 'SharedPrefernece'. Nhưng nếu bạn cần chuỗi lớn các chuỗi, tôi muốn nói DB là cách duy nhất để đi. Khó thực hiện và sử dụng hơn, nhưng nó sẽ hiệu quả hơn. – inazaruk

+0

cảm ơn đề xuất của bạn và tôi thấy rằng SET, cấu trúc dữ liệu, không thể chứa các phần tử trùng lặp. nó có nghĩa là nó không thể chứa cùng một chuỗi nhiều hơn một lần ?? @inazaruk – Pravy

1

Không thể lưu trữ chúng dưới dạng mảng, nhưng bạn có thể ghép chúng, sau đó chia chúng khi tải, sử dụng StringTokenizer. Tôi có thể giúp với một số mã, nếu điều này sẽ hữu ích cho bạn.

+0

nhờ .., ya chắc chắn .. một số liên kết hoặc mã về vấn đề này sẽ thực sự hữu ích – Pravy

0

Trong tùy chọn được chia sẻ, bạn có thể lưu trữ dữ liệu như cặp giá trị khóa. Những gì tôi thường làm là để chèn tất cả các dữ liệu sau đó có được danh sách chính và lặp qua nó, thiết lập quan trọng như bất cứ điều gì độc đáo, có thể là số 1,2,3 vv

sử dụng

SharedPreference sp = bối cảnh. getSharedPreferences ("myPrefs", MODE_WORLD_READABLE); Bản đồ cài sẵnDataMap = sp.getAll();

sau đó lặp qua presetDataMap,

Iterator ITT = presetDataMap.keySet() iterator().

hy vọng điều này sẽ hữu ích.

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