2009-07-14 20 views

उत्तर

8

कच्चे HTML को Spanned ऑब्जेक्ट में परिवर्तित करने के लिए आपको Html.fromHtml() का उपयोग करने में सक्षम होना चाहिए जिसका उपयोग आप अपने बटन पर setText() पर कर सकते हैं। Html प्रलेखन कहता है, "सभी HTML टैग समर्थित नहीं हैं"।

+0

जावा कोड का उपयोग किए बिना ऐसा करने का कोई तरीका है? मैं स्थिर पाठ संसाधन फ़ाइल में इनकोडिंग है: <बटन एंड्रॉयड: आईडी = "@ + id/x_button" एंड्रॉयड: layout_width = "wrap_content" एंड्रॉयड: layout_height = "wrap_content" एंड्रॉयड: पाठ = "@ स्ट्रिंग/एक्स " <स्ट्रिंग नाम =" एक्स ">

XX

YY – user121196

+0

ऐसा नहीं है कि मैं के बारे में पता कर रहा हूँ। – CommonsWare

+0

आपको उसी विधि कॉल का उपयोग करने में सक्षम होना चाहिए जो @ commonsware.com का उपयोग किया जाता है, और केवल संसाधन फ़ाइल से स्ट्रिंग प्राप्त करें। Context.getString (R.id.x) होना चाहिए –

3

मार्क का उत्तर सामान्य रूप से सामान्य है। यद्यपि संदर्भ के लिए यहां एक और पूर्ण उदाहरण है (यह दस्तावेज़ों का भ्रमित हिस्सा है)। (और, हाँ, मैं इस उदाहरण एक Button का उपयोग नहीं कर रहा है पता है, लेकिन यह एक मैं काम किया था, और यह एक ही विचार है।)

स्ट्रिंग एक संसाधन होने की जरूरत है:

<?xml version="1.0" encoding="utf-8"?> 
    <resources> 
    <string name="mystring">  
     You can use regular text, and escaped HTML markup 
     &lt;br /&gt;&lt;br /&gt; 
     A simple BOLD example &lt;b&gt;StackOverflow&lt;/b&gt;. 
    </string> 
    </resources> 

फिर संसाधन हो और Html.fromHtml() का उपयोग करें (अगर आप एक EditText उपयोग कर रहे हैं, तो आप यह भी सुनिश्चित करें बफर SPANNABLE के लिए सेट है बनाने की जरूरत है):

public class MyActivity extends Activity { 
    TextView myTextView; 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.about);  

      myTextView = (TextView) this.findViewById(R.id.mytextview); 
      myTextView.setText(Html.fromHtml(getResources().getString(R.string.mystring)), 
          TextView.BufferType.SPANNABLE); 
     } 
     ... 

अन्त में, ध्यान दें कि सभी HTML काम नहीं करता है, निश्चित रूप से। तो आपकी आवश्यकताओं के आधार पर, यह पूरी तरह से उपयोगी नहीं हो सकता है। यदि आप एक लिंक (एंकर टैग) का उपयोग करने का प्रयास करते हैं तो आप यह issue भी देखें और आप इसे क्लिक करने का जवाब देना चाहते हैं। सरल सामान के लिए, Linkify देखें।

1

ये दो उत्तर भी मान्य हैं, आप इसे भी ऐसा कर सकते हैं। मैं एक ही प्रकृति के कुछ करने की कोशिश कर रहा है और कहा कि सीएसएस के साथ मेरी एचटीएमएल सही तरीके से प्रारूपित हो रही नहीं कर रहा था तो मैं स्ट्रिंग ले लिया और इस तरह वेब दृश्य में लोड बाहर पाया गया था:

WebView webview = (WebView) findViewById(R.id.MyWebview); 
String summary = "<html><body>You scored <b>192</b> points.</body></html>"; 
webview.loadData(summary, "text/html", "utf-8"); 

और यह सब मान्यता प्राप्त शैलियों और एचटीएमएल सही ढंग से स्वरूपित। एंड्रॉइड संदर्भ से अधिक HERE

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