2010-10-13 15 views
9

मैं देशों के नाम को दर्शाने वाला एक ListView है। मैं strings.xml में नाम संग्रहीत किया है, स्ट्रिंग सरणी country_names कहा जाता है के रूप में।HashMap का उपयोग करते हुए एक स्ट्रिंग नक्शा और int

ListView को आबाद करने में, मैं एक ArrayAdapter जो strings.xml से पढ़ता का उपयोग करें:

String[] countryNames = getResources().getStringArray(R.array.country_names); 
ArrayAdapter<String> countryAdapter = new ArrayAdapter<String>(this, R.layout.checked_list, countryNames); 
myList.setAdapter(countryAdapter); 

अब मैं भी प्रत्येक देश के लिए एक देश कोड है। जब ListView पर किसी विशेष देश का नाम क्लिक किया जाता है, तो मुझे इसी देश कोड को टोस्ट करने की आवश्यकता होती है।

मैं समझता हूँ कि एक HashMap को लागू करने के लिए सबसे अच्छा यह तकनीक है। जहां तक ​​मुझे पता है, हैश मैप पुट() फ़ंक्शन का उपयोग करके पॉप्युलेट किया गया है।

myMap.put("Country",28); 

अब मेरी प्रश्न हैं:

  1. यह string.xml सरणी पढ़ सकते हैं और इसका इस्तेमाल को भरने के लिए मानचित्र करना संभव है? मेरा मतलब है, मैं मानचित्र में आइटम जोड़ना चाहता हूं, लेकिन मुझे अन्य सरणी से आइटम पढ़कर ऐसा करने में सक्षम होना चाहिए। मैं यह कैसे कर सकता हूँ?

    मूल कारण मैं पूछ है, क्योंकि मैं एक जगह है जहाँ इसे जोड़ने के लिए/हटाने/उन्हें संशोधित आसान है में देश के नाम और कोड रखना चाहते हैं।

  2. स्ट्रिंग-सरणियों strings.xml में संग्रहीत हैं। समान पूर्णांक सरणी कहाँ संग्रहीत की जानी चाहिए? मूल्य फ़ोल्डर में, लेकिन किसी भी विशिष्ट एक्सएमएल फ़ाइल के तहत? प्रोग्राम के रूप में स्ट्रिंग सरणी और पूर्णांक सरणी, और फिर उन्हें HashMap में डाल:

उत्तर

26
  1. संभावनाओं में से एक के रूप में, आप XML में 2 अलग सरणियों संग्रहीत कर सकते हैं।

    सरणियों की परिभाषा:

    <?xml version="1.0" encoding="utf-8"?> 
    <resources> 
        <string-array name="countries_names"> 
         <item>USA</item> 
         <item>Russia</item> 
        </string-array> 
    
        <integer-array name="countries_codes"> 
         <item>1</item> 
         <item>7</item> 
        </integer-array> 
    </resources> 
    

    और कोड:

    String[] countriesNames = getResources().getStringArray(R.array.countries_names); 
    int[] countriesCodes = getResources().getIntArray(R.array.countries_codes); 
    
    HashMap<String, Integer> myMap = new HashMap<String, Integer>(); 
    for (int i = 0; i < countriesNames.length; i++) { 
        myMap.put(countriesNames[i], countriesCodes[i]); 
    } 
    
  2. यह किसी भी नाम के साथ एक फ़ाइल हो सकता है।

+0

हाय, सर्गेई। मुझे पता है कि कैसे प्रोग्राम के रूप में HashMap.Could में मूल्यों डाल करने के लिए आप अपने जवाब में एक कोड स्निपेट साझा करना चाहते हैं। 2 तक), धन्यवाद, यही वह है जिसे मैं ढूंढ रहा था। – kiki

+0

मैंने अपना जवाब संपादित कर लिया है। –

+0

अरे, बहुत बहुत धन्यवाद! मैं उलझन में था कि क्या() इस तरह से काम करेगा। – kiki

संबंधित मुद्दे