जो कुछ मैंने पाया है वह दो उप-इष्टतम तरीके हैं। यह अभी भी स्पैन करने योग्य का उपयोग करता है, लेकिन मुझे सुनता है, क्योंकि मैं सटीक स्थिति में बोलता हूं।
सबसे पहले, आपके द्वारा उल्लेख की जाने वाली विधि है, और आप भाषाओं के विशाल स्विच स्टेटमेंट के माध्यम से जा सकते हैं और प्रत्येक के लिए अवधि को हल कर सकते हैं। यह निश्चित रूप से भयानक है, लेकिन सही स्पैन क्लिक करने योग्य सुनिश्चित करने का यह सबसे सटीक तरीका है।
उदा।
if (Locale.getDefault().getLanguage().contentEquals("en") {
// spannable gets substring a,b
else if (Locale.getDefault().getLanguage().contentEquals("fr") {
// spannable gets substring x,y
}
फिर से, अच्छा नहीं।
अब, अपने अनुवादकों स्ट्रिंग सबस्ट्रिंग में टूट, IE संभाल कर सकते हैं, तो
<string name=suba>Some intro text to</string>
<string name=sublinka>linkable A</string>
<string name=subb>and then some intro text to</string>
<string name=sublinka>linkable B</string>
तो आप प्रोग्राम की तरह Spannable तार का निर्माण कर सकते हैं:
TextView textView = (TextView) findViewById(R.id.text_view);
String subA = getString(R.string.suba);
String subLinkA = getString(R.string.sublinka);
String subB = getString(R.string.subb);
String subLinkB = getString(R.string.sublinkb);
SpannableStringBuilder spannableText = new
SpannableStringBuilder(subA);
spannableText.append(subLinkA);
spannableText.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(this, "Sub Link A Clicked", Toast.LENGTH_SHORT).show();
}
}, spannableText.length() - subLinkA.length(), spannableText.length(), 0);
spannableText.append(subB);
spannableText.append(subLinkB);
spannableText.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(this, "Sub Link B Clicked", Toast.LENGTH_SHORT).show();
}
}, spannableText.length() - subLinkB.length(), spannableText.length(), 0);
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setText(spannableText, TextView.BufferType.SPANNABLE);
जैसा कि मैंने कहा, यह सच है एक "कम से कम बदतर" स्थिति, लेकिन मैंने सोचा कि मैं इसे कम से कम बाहर निकाल दूंगा, क्योंकि मुझे नहीं लगता कि स्थानीयकरण के साथ ऐसा करने के अन्य तरीके हैं, क्योंकि कंपाइलर को का कोई ज्ञान नहीं है स्ट्रिंग का अनुवाद किया जाता है।
अपनी आवश्यकता को परिभाषित करने के लिए जहां आपको इसे क्लिक करने योग्य या कहां से अपेक्षित भाग क्लिक करने योग्य है –
[यह] (http://stackoverflow.com/questions/10696986/how-to-set-the- भाग-का-पाठ-दृश्य-क्लिक-क्लिक करने योग्य) आपके लिए समान प्रश्न है। – FiN
@ एफआईएन इसी तरह, हाँ, लेकिन यह मेरे से भिन्न होता है क्योंकि मेरे काल की अनुक्रमणिका अलग-अलग होती है, जहां उस मामले में यह नहीं होता है –