web-dev-qa-db-fra.com

Comment utiliser le dictionnaire (comme l'iphone NSDictionary) dans Android?

J'ai travaillé dans le message soap, et pour analyser la valeur de Webservice, les valeurs sont stockées dans ArrayList.

Exemple: les valeurs sont le nom de l'employé (Siva) et l'ID de l'employé (3433fd), ces deux valeurs sont stockées dans l'arraylist, mais je veux les stocker dans le dictionnaire, comment?

31
Sampath Kumar

vous pouvez utiliser HashMap comme ceci

Map <String,String> map =  new HashMap<String,String>();
//add items 
map.put("3433fd","Siva");
//get items 

String employeeName =(String) map.get("3433fd");
77
confucius

Vous pouvez utiliser Bundle .

car il propose String à différents types de mappage.

Bundle b = new Bundle();
b.putInt("identifier", 121);
b.putString("identifier", "Any String");
b.putStringArray("identifier", stringArray);

int i = b.getInt("identifier");
...
9
Adil Soomro
 public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        EditText textview = (EditText) findViewById(R.id.editTextHash);
        EditText textviewNew = (EditText) findViewById(R.id.editTextHash2);

        Map<String, String> map = new HashMap<String,String>();
        map.put("iOS", "100");
        map.put("Android", "101");
        map.put("Java", "102");
        map.put(".Net", "103");

        String TextString = "";
       // Set<E> keys = map.keySet();

       Set keys = map.keySet();
       System.out.println("keys "+keys);
        for (Iterator i = keys.iterator(); i.hasNext();) 
        {
            String key = (String) i.next();
            System.out.println("key "+key);
            String value = (String) map.get(key);
            System.out.println("value "+value);
            textview.append(key + " = " + value);
            TextString+=(key + " = " + value); 
        }
        //textviewNew.setText(TextString);

//        Iterator iterator = map.keySet().iterator();
//        
//        while (iterator.hasNext()) 
//        {
//          String object = (String) iterator.next();
//          textview.setText(object);
//      }
//        
//        //textview.setText(map.get("Siva"));
//        
//        System.out.println(map);

    }
}
6
Sampath Kumar

A Dictionary est une classe abstraite qui mappe les clés aux valeurs et il y a Class Dictionary dans Android refer link vous pouvez trouver une note sur Class Aperçu

N'utilisez pas cette classe car elle est obsolète. Veuillez utiliser l'interface Map pour les nouvelles implémentations.

Une tentative d'insérer une clé nulle ou une valeur nulle dans un dictionnaire entraînera une NullPointerException , mais vous pouvez utiliser l'interface Map , elle fournit exactement la même fonctionnalité d'un dictionnaire.vous pouvez l'utiliser comme ci-dessous

//put values
Map Message = new HashMap();
Message.put("title", "Test message");
Message.put("description", "message description");
Message.put("email", "[email protected]");
//get values
Log.d("get Message","Message title -"+Message.get("title"));

vous pouvez également utiliser une classe personnalisée comme ci-dessous

public class MessageObject {
    String title;
    String description;
    String email;
}

vous pouvez utiliser les Getters et les Setters pour obtenir et mettre des valeurs, pas besoin de se souvenir des noms de clés à chaque fois que vous pouvez obtenir d'autres avantages de cette façon.

1
Shabeer Ali