2011-07-20 20 views
7

Quiero saber si es posible almacenar matriz de cadenas en SharedPreferences. En mi aplicación quiero, conjunto de nombres para ser almacenados. Sé que esto se puede hacer usando DB, solo quiero saber si es posible para guardar esos conjunto de nombre como matriz de cadenas en SharedPreferences.Matriz de cadenas en SharedPreferences

Respuesta

6

Puede almacenar un conjunto de Cadenas usando SharedPreferences en API Nivel 11 y superior. Ver getStringSet() y putStringSet()

En Nivel de API anterior a 11, puede utilizar algún tipo de truco. Por ejemplo, si necesita almacenar matriz de cadenas bajo llave "StringArray", puede guardar cada cuerda de la matriz mediante putString y las teclas "stringArray.1", "stringArray.2", etcétera.

+0

gracias .... Siento que este sería sin duda ayudará ¿Pero esta buena manera de almacenar cadenas, en general? me refiero a almacenar un conjunto de cadenas en las preferencias compartidas en lugar de en DB? – Pravy

+1

Si tiene una pequeña variedad de cadenas, podría ser más fácil simplemente usar 'SharedPrefernece'. Pero si necesita grandes conjuntos de cadenas, diría que DB es la única forma de hacerlo. Es más difícil de implementar y usar, pero sería más eficiente. – inazaruk

+0

gracias por su sugerencia y encontré que el SET, la estructura de datos, no puede contener elementos duplicados. ¿significa que no puede contener la misma cadena más de una vez? @inazaruk – Pravy

1

No es posible almacenarlos como una matriz, pero puede concatenarlos y luego dividirlos al cargar, usando StringTokenizer. Puedo ayudar con algún código, si esto es útil para usted.

+0

gracias .., ya seguro .. algunos enlaces o código con respecto a este sería de gran ayuda – Pravy

0

En preferencias compartidas, puede almacenar los datos como pares de valores clave. Lo que suelo hacer es insertar todos los datos a continuación, obtener la lista de claves e iterar a través de él, clave establecer como algo único, ya se trate de los números 1,2,3 etc

uso

SharedPreference sp = contexto. getSharedPreferences ("myPrefs", MODE_WORLD_READABLE); Mapa presetDataMap = sp.getAll();

a continuación, recorrer presetDataMap,

Iterator ITT = presetDataMap.keySet() iterador().;

Espero que esto ayude.

Cuestiones relacionadas