2017-05-30 38 views
0

我有一个从存储为字符串集合的sharedPreferences获取检索值的问题。如何在Android中从SharedPreferences中检索字符串集合

Set<String> set = new HashSet<String>(); 
       set.add("Price: " + String.valueOf(item.getItemPrice())); 
       set.add("Quantity: " + String.valueOf(QuantityofItem)); 
       set.add("Total: " + String.valueOf(BillValue)); 
       set.add(customizeMsg); 
       set.add("Image: " + item.getItemImage()); 
       editor.putStringSet(item.getItemName(), set); 

我StringSet包含以下5个值,我想检索存储的数据和检索成列表视图。任何方法如何执行?

回答

1

我想检索存储的数据并作为列表视图进行检索。

#。我想你试图检索存储的Set数据为ArrayList。使用下面的代码来检索SetArrayList

SharedPreferences sharedPreferences = context.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE); 

// Set 
Set<String> set = sharedPreferences.getStringSet(KEY_ITEM_NAME, new HashSet<String>()); 

// List 
ArrayList<String> list = new ArrayList<String>(set); 

#。如果您在SharedPreferences中存储了多个Set,那么请为其他人执行相同操作。通过使用KEY_ITEM_NAME的值作为item.getItemName()获取Set

#。如果你想显示它ListView然后遵循@CommonsWare

+0

#FAT谢谢:),我的字符串集有多个字符串值,所以我想要显示单个集作为单个列表项,即商品添加到购物车时,字符串集包含商品价格数量名称等的值。 –

+0

我明白了你的观点。如果你为单个'Item'存储单个'Set',那么你还应该存储'Item'名称,这个'name'将被要求获得该项目的确切'set' >>'sharedPreferences.getStringSet(KEY_ITEM_NAME,新的HashSet ())'。 1.为您的物品创建一个名称,价格,数量等简单的模型类。 2.使用项目名称从首选项中获取数据集。 3. crate Item类对象并将数据设置为对象。 4.使用list.add(物件) – FAT

+0

将物品对象添加到列表中哦,先生真的很感谢:D:D真的 –

2

我有一个从存储为字符串集的sharedPrefrences获取检索值的问题。

除非你commit()apply()editor,您的数据将不会被保存。

我想要检索的SharedPreferences存储的数据

呼叫getStringSet(),传递您正在使用的任何键(在这里,item.getItemName())。

检索成列表视图

欢迎您创建一个ArrayListSet<String>元素,然后包裹在一个ArrayAdapter,然后把ArrayAdapterListView

+0

烨描述的步骤我的commit()和应用(成功保存的数据),但只是迷糊让他们到一个列表视图 –

+0

“设置集=新HashSet (); set.add(“Price:”+ String.valueOf(item.getItemPrice())); set.add(“Quantity:”+ String.valueOf(QuantityofItem)); set.add(“Total:”+ String.valueOf(BillValue)); set.add(customizeMsg); set.add(“Image:”+ item.getItemImage()); editor.putStringSet(item.getItemName(),set); editor.apply(); editor.commit();' –

+0

m使用'Key'作为itemName,“item.getItemName()” –

相关问题