मैं एंड्रॉइड विजेट बटन में html
का उपयोग कैसे करूं?एंड्रॉइड बटन टेक्स्ट और एचटीएमएल
उत्तर
कच्चे HTML को Spanned
ऑब्जेक्ट में परिवर्तित करने के लिए आपको Html.fromHtml()
का उपयोग करने में सक्षम होना चाहिए जिसका उपयोग आप अपने बटन पर setText()
पर कर सकते हैं। Html
प्रलेखन कहता है, "सभी HTML टैग समर्थित नहीं हैं"।
मार्क का उत्तर सामान्य रूप से सामान्य है। यद्यपि संदर्भ के लिए यहां एक और पूर्ण उदाहरण है (यह दस्तावेज़ों का भ्रमित हिस्सा है)। (और, हाँ, मैं इस उदाहरण एक Button
का उपयोग नहीं कर रहा है पता है, लेकिन यह एक मैं काम किया था, और यह एक ही विचार है।)
स्ट्रिंग एक संसाधन होने की जरूरत है:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="mystring">
You can use regular text, and escaped HTML markup
<br /><br />
A simple BOLD example <b>StackOverflow</b>.
</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 देखें।
ये दो उत्तर भी मान्य हैं, आप इसे भी ऐसा कर सकते हैं। मैं एक ही प्रकृति के कुछ करने की कोशिश कर रहा है और कहा कि सीएसएस के साथ मेरी एचटीएमएल सही तरीके से प्रारूपित हो रही नहीं कर रहा था तो मैं स्ट्रिंग ले लिया और इस तरह वेब दृश्य में लोड बाहर पाया गया था:
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
जावा कोड का उपयोग किए बिना ऐसा करने का कोई तरीका है? मैं स्थिर पाठ संसाधन फ़ाइल में इनकोडिंग है: <बटन एंड्रॉयड: आईडी = "@ + id/x_button" एंड्रॉयड: layout_width = "wrap_content" एंड्रॉयड: layout_height = "wrap_content" एंड्रॉयड: पाठ = "@ स्ट्रिंग/एक्स " <स्ट्रिंग नाम =" एक्स "> –
user121196
XX
YYऐसा नहीं है कि मैं के बारे में पता कर रहा हूँ। – CommonsWare
आपको उसी विधि कॉल का उपयोग करने में सक्षम होना चाहिए जो @ commonsware.com का उपयोग किया जाता है, और केवल संसाधन फ़ाइल से स्ट्रिंग प्राप्त करें। Context.getString (R.id.x) होना चाहिए –