2013-04-17 6 views
6

साथ तार की एक सरणी फॉर्मेट करें मैं सिर्फ android used to format strings तरह तार की एक सरणी स्वरूपित करने के लिए करना चाहते हैं:तर्क

आमतौर पर हम करते हैं:

  • strings.xml

    <string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string> 
    
  • कुछ जावा कोड में:

    Resources res = getResources(); 
    String text = String.format(res.getString(R.string.welcome_messages), username, mailCount); 
    

मैं की तरह कुछ के लिए देख रहा हूँ:

<string-array name="employee"> 
     <item>name: %1$s</item> 
     <item>post: %2$s</item> 
    </string-array> 
  • कुछ जावा कोड में

    :

    Resources res = getResources(); 
    String[] employee = ArrayString.format(res.getStringArray(R.string.employee), name, post); 
    
  • वहाँ है

    • कुछ मनमाने ढंग से एक्सएमएल में ऐसा करने का एक शानदार तरीका है?

      संपादित करें:

      कोड के अगले टुकड़े एक समाधान नहीं है और मैं इसे सिर्फ @Sufian, जो एक टिप्पणी में इसके लिए पूछा मदद करने के लिए पोस्ट कर रहा हूँ। एक बार मेरा प्रश्न स्ट्रिंग सरणी की सामग्री को प्रारूपित करने के बारे में एक बार एक वास्तविक जवाब नहीं है और बोले कोड प्रत्येक स्ट्रिंग को अलग से स्वरूपित कर रहा है।

      कुछ misc.xml में:

      <string-array 
          name="string_array"> 
          <item>1st position: %1$d</item> 
          <item>2nd position: %1$d</item> 
      </string-array> 
      

      फिर, जावा कोड में:

      res = getResources(); 
      String[] sa = res.getStringArray(R.array.string_array); 
      for (int i = 0; i < sa.length; i++) { 
          text += String.format(sa[i], i); 
      } 
      
    +0

    तो, आप इसे कैसे हल किया:

    http://developer.android.com/guide/topics/resources/string-resource.html

    में मात्रा तार पर देखो यहाँ विशिष्ट API दस्तावेज़ है? मेरा भी वही मुद्दा है। – Sufian

    +0

    ऐसा लगता है कि इस तरह के स्वरूपण करने के लिए कोई शानदार तरीका नहीं है। आपको प्रत्येक स्ट्रिंग सरणी तत्व में पुनरावृत्त करने की आवश्यकता होगी और इसे अपनी आवश्यकताओं के रूप में प्रारूपित करना होगा। –

    +0

    हम्म। कोई भी नमूना जिसे आप साझा कर सकते हैं? अभी के लिए मैं निम्नलिखित कोड स्निपेट का उपयोग करके नाम से स्ट्रिंग्स चुन रहा हूं, और सरल संसाधन स्ट्रिंग्स जैसे फ़ॉर्मेटिंग तर्क प्रदान कर रहा हूं। http://steven.bitsetters.com/2007/11/27/accessing-android-resources-by-name-at-runtime/ – Sufian

    उत्तर

    0

    getQuantityString आपकी समस्या का समाधान हो सकता है। http://developer.android.com/reference/android/content/res/Resources.html#getQuantityString(int,%20int,%20java.lang.Object...)

    +1

    @Chuck_Norris मात्रा स्ट्रिंग वास्तव में शून्य, कुछ, कई की राशि के आधार पर कई संभावनाओं के सेट में एक प्रकार का स्वरूपण चुनती है ... मुझे संपूर्ण सरणी स्ट्रिंग का उपयोग करने की आवश्यकता है और प्रत्येक सरणी स्थिति तर्क के साथ स्वरूपित एक स्ट्रिंग हो सकती है । –

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