2012-08-06 5 views
6

Sono nuovo di Android. Ho cercato in giro ma non riuscivo a trovare nulla di simile a NSdictionary di iOS in Android. Per esempio in iOS posso creare SEMPLICE serie di dizionario come questo formatoC'è qualcosa come NSDictionary in 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] 

So che posso creare string-array lavoro simile come quella in 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> 

La mia domanda è se ci è tutto il resto utilizzato per creare una serie di dizionario AN in Android come iOS.

Grazie per il vostro aiuto.

risposta

14

In primo luogo, penso che ci siano molti tutorial su questa roba, quindi è possibile cercare ulteriori informazioni. Dato che sei nuovo in Android potresti non sapere il "nome" da cercare. In questo caso, "HashMap" è ciò che stai cercando. Funziona come 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); 

Ora si è come un array di dizionario.

Spero che questo aiuto.

+0

Grazie per la risposta rapida, ma la tua risposta è SOLO per la creazione di un dizionario. Sto cercando un array di dizionario. Per favore aiuto! – JHHoang

+0

Grazie. Questo è quello che sto cercando. Grazie. – JHHoang

+0

risposta impressionante, grazie –

2

È possibile inserire ciò che @ user1139699 ha detto in un ArrayList.

ArrayList<HashMap> list = new ArrayList(); 

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

list.add(map); 
+0

Grazie per la risposta. La risposta di @ user1139699 è ciò che cerco in questo caso. – JHHoang

0

anche se si desidera caricare un file in questo modo:

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

ecc è possibile utilizzare proprietà Java(); Quindi puoi ottenere istantaneamente il valore di ciascuna chiave.



Spiegazione:

avete per esempio un file myTranslations.txt. In questo file si scrive coppie di chiavi/valori nel formato:

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

dove la parte prima della "=" è la chiave, e la parte dopo è il valore.

Poi nel codice che fai:

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(); 
    } 

dove filePath è il percorso di file di cui sopra.

allora si può ottenere il valore di ogni chiave come:

properties.get("prompt.alert") 

che restituirà la stringa:

alert 

come è nel file txt.

Se aiuta a fare un aumento di voti.

+0

Puoi spiegarci di più per favore? – JHHoang