2012-08-06 9 views
6

Soy nuevo en Android. Busqué pero no pude encontrar nada que funcione como NSdictionary de iOS en Android. Por ejemplo, en iOS puedo crear SIMPLE gama de diccionario como este formato¿Hay algo como NSDictionary en Android?

Array 
    idx1: [objA1 for keyA],[objB1 for keyB],[objB1 for keyC] 
    idx2: [objA2 for keyA],[objB2 for keyB],[objB2 for keyC] 
    idx3: [objA3 for keyA],[objB3 for keyB],[objB3 for keyC] 

sé que puedo crear cadena de matriz que funcionan de manera similar como la de Android

<string-array name="list_obj1"> 
    <item>ObjA1</item> 
    <item>ObjB2</item> 
    <item>ObjC3</item> 
</string-array> 
<string-array name="list_obj2"> 
    <item>ObjB1</item> 
    <item>ObjB2</item> 
    <item>ObjB3</item> 
</string-array> 
<string-array name="list_obj3"> 
    <item>ObjC1</item> 
    <item>ObjC2</item> 
    <item>ObjC3</item> 
</string-array> 

Mi pregunta es si hay se usa algo más para crear AN matriz de diccionario en Android como iOS.

Gracias por su ayuda.

Respuesta

14

En primer lugar, creo que hay muchos tutoriales sobre estas cosas, entonces puede buscar más información. Dado que eres nuevo en Android, es posible que no conozcas el "nombre" para buscar. Para este caso, "HashMap" es lo que estás buscando. Funciona como NSdictionary.

//Create a HashMap 
Map <String,String> map = new HashMap<String,String>(); 
//Put data into the HashMap 
map.put("key1","Obj1"); 
map.put("key2","Obj2"); 
map.put("key3","Obj3"); 

// Now create an ArrayList of HashMaps 
ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>(); 

//Add the HashMap to the ArrayList 
mylist.add(map); 

Ahora tiene como una matriz de diccionario.

Espero que esta ayuda.

+0

Gracias por la respuesta rápida, pero su respuesta es SOLO para crear uno en un diccionario. Estoy buscando UNA matriz de diccionario. ¡Por favor ayuda! – JHHoang

+0

Gracias. Esto es lo que estoy buscando. Gracias. – JHHoang

+0

respuesta impresionante, gracias –

2

Puede poner lo que @ user1139699 dijo en una ArrayList.

ArrayList<HashMap> list = new ArrayList(); 

Map <String, String> map = new HashMap<String,String>(); 
map.put("key","Obj"); 

list.add(map); 
+0

Gracias por su respuesta. La respuesta de @ user1139699 es lo que busco en este caso. – JHHoang

0

también si desea cargar un archivo de la siguiente manera:

property.key.1=value of 1st key 
property.key.2=value of 2nd key 
prompt.alert = alert 

etc puede usar propiedades de Java(); Entonces puede obtener el valor de cada clave al instante.



Explicación:

tiene por ejemplo un myTranslations.txt archivo. En ese archivo se escribe pares de claves/valores en el formato:

property.key.1=value of 1st key 
property.key.2=value of 2nd key 
prompt.alert = alert 

donde la parte antes del "=" es la clave, y la parte que sigue es el valor.

Luego, en el código que hace:

Properties properties = new Properties(); 

    File propertiesFile = new File (filePath); 
    FileInputStream inputStream = null; 
    try { 
     inputStream = new FileInputStream(propertiesFile); 
     properties.load(inputStream); 
    } catch (IOException ioe) { 
     ioe.printStackTrace(); 
    } 

donde rutaArchivo es la ruta de acceso a los archivos anterior.

entonces se puede obtener el valor de cada tecla:

properties.get("prompt.alert") 

que devolverá la cadena:

alert 

como lo es en el archivo txt.

If it helps please vota.

+0

¿Puedes explicar más sobre esto, por favor? – JHHoang

Cuestiones relacionadas