2012-06-29 18 views
5

में लोकेल पर आधारित पता स्वरूपण मेरे आवेदन में हाय मुझे उपयोगकर्ता द्वारा निर्धारित लोकेल के अनुसार इनपुट पता प्रदर्शित करने की आवश्यकता है। क्या किसी ने फ़ॉर्मेटिंग का काम किया है या पता लगाया है या किसी भी पॉइंटर्स को एंड्रॉइड प्लेटफॉर्म में लिखा है।एंड्रॉइड

+0

मैं के लिए कारण पता कर सकते हैं -1 रेटिंग्स इस सवाल के लिए। – shailbenq

उत्तर

3

googlei18n/libaddressinput: Google’s postal address library, powering Android and Chromium देखें। प्रोजेक्ट में दो मॉड्यूल हैं: एंड्रॉइड और: आम। आपको केवल आवश्यकता होनी चाहिए: लोकेल जागरूक डिस्प्ले के लिए पते को प्रारूपित करना आम है।

import android.location.Address; 
import android.support.annotation.NonNull; 
import android.text.TextUtils; 
import com.google.i18n.addressinput.common.AddressData; 
import com.google.i18n.addressinput.common.FormOptions; 
import com.google.i18n.addressinput.common.FormatInterpreter; 
... 
public static String getFormattedAddress(@NonNull final Address address, 
             @NonNull final String regionCode) { 
    final FormatInterpreter formatInterpreter 
      = new FormatInterpreter(new FormOptions().createSnapshot()); 
    final AddressData addressData = (new AddressData.Builder() 
      .setAddress(address.getThoroughfare()) 
      .setLocality(address.getLocality()) 
      .setAdminArea(address.getAdminArea()) 
      .setPostalCode(address.getPostalCode()) 
      .setCountry(regionCode) // REQUIRED 
      .build()); 
    // Fetch the address lines using getEnvelopeAddress, 
    List<String> addressFragments = formatInterpreter.getEnvelopeAddress(addressData); 
    // join them, and send them to the thread. 
    return TextUtils.join(System.getProperty("line.separator"), 
      addressFragments); 
} 

नोट: क्षेत्र कोड एक वैध आईएसओ 2 देश कोड होना चाहिए, क्योंकि यह वह जगह है जहां प्रारूप दुभाषिया पता प्रारूप खींचता है। (यदि आप उत्सुक हैं, तो प्रारूपों की सूची के लिए RegionDataConstants देखें।)

पता के 2-अक्षर CLDR क्षेत्र कोड सेट करता है; पताडेटा # getPostalCountry() देखें। बिल्डर को पास किए गए अन्य मानों के विपरीत, क्षेत्र कोड कभी शून्य नहीं हो सकता है।

उदाहरण: अमेरिका

801 CHESTNUT ST
अनुसूचित जनजाति। लुइस, MO 63101

उदाहरण: जेपी

〒1600023
NISHISHINJUKU
3-2-11 NISHISHINJUKU Shinjuku-केयू टोक्यो

+0

मैं इस तरह की पुस्तकालय की खोज कर रहा हूं, उत्तर के लिए बहुत बहुत धन्यवाद! –

1

मैंने अन्य प्लेटफार्मों पर स्थानीयकरण का एक उचित हिस्सा किया है। एंड्रॉइड के लिए स्थानीयकरण के लिए यहां एक मार्गदर्शिका दी गई है: http://developer.android.com/guide/topics/resources/localization.html#using-framework

एक दृष्टिकोण स्थानीय संसाधनों का उपयोग करना होगा ताकि संदेशफॉर्मेट तारों को संग्रहीत किया जा सके जो आपके इच्छित प्रत्येक लोकेल के लिए पता लेआउट से मेल खाते हैं। वहां से, आपको वैश्विक पता ब्लॉक मानकों के संदर्भ की आवश्यकता होगी और आपको आवश्यक प्रत्येक लोकेल के लिए प्रारूप स्ट्रिंग बनाएं।

+0

धन्यवाद, मैं वही एंड्रॉइड स्थानीयकरण का जिक्र कर रहा हूं जिसमें पता एपीआई है लेकिन पते का कोई स्वरूपण चयनित लोकेल के आधार पर प्रदान नहीं किया गया है। – shailbenq

+1

मुझे लगता है कि तर्क यह है कि एक पहले से ही डाक पता "लोकल" से संबंधित है और इसका स्वरूपण करने का एक निश्चित तरीका है। यह जर्मन सम्मेलनों या दूसरी तरफ से अमेरिकी डाक पते को व्यक्त करने के लिए उदाहरण के लिए ज्यादा समझ में नहीं आता है। यदि आप संपर्क संपर्क डेटाबेस तक पहुंच रहे हैं तो स्ट्रक्चरर्डपोस्टल इकाई के स्वरूपित पता फ़ील्ड का उपयोग करें। – tiguchi

+0

इस [Google उदाहरण कोड] में (http://developer.android.com/training/basics/location/geocoding.html) वे मेरे सुझाव के समान विचार का उपयोग करके एक पता रेखा प्रारूपित करते हैं। सुनिश्चित नहीं है कि कोई आसान तरीका है या नहीं। – James