2012-01-14 3 views
26

Я работал в мыльном сообщении и анализировал значение из Webservice, значения хранятся в ArrayList.Как использовать словарь (например, iphone NSDictionary) в android?

Пример: значения - это имя сотрудника (Siva) и идентификатор сотрудника (3433fd), эти два значения хранятся в arraylist, но я хочу сохранить в словаре, как?

ответ

66

вы можете использовать HashMap как этот

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

String employeeName =(String) map.get("3433fd"); 
+1

Спасибо за ваш ответ. –

+0

- это то, что вы ищете? – confucius

+0

это тоже похоже (словарь для iPhone) –

9

Вы можете использовать Bundle.

как он предлагает String для различных типов картографирования.

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

int i = b.getInt("identifier"); 
... 
+0

Спасибо. Многие ответы указывают на хеш-карту, но на самом деле я думаю, что связка больше похожа на словарь, потому что она позволяет больше типов переменных – Shayno

5
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); 

    } 
} 
0

Dictionary является абстрактным классом, который отображает ключи от значений и есть словарь класса в Android см link вы можете найти записку в классе Обзор

Не использовать этот класс, так как он устарел. Для новых реализаций используйте интерфейс Map .

Попытка вставить либо нулевой ключ или нулевое значение в словаре приведет к NullPointerException, но вы можете использовать Map интерфейс, он обеспечивает точно такую ​​же функциональность dictionary.you можете использовать его, как показано ниже

//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")); 

вы также можете использовать пользовательский класс, как показано ниже

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

вы можете использовать геттеры и сеттеры, чтобы получить и поставить значения, не нужно помнить имена ключей накануне Таким образом, вы можете получить некоторые другие преимущества.