2011-09-27 21 views
16

मैं एक TextView और तरहएंड्रॉयड Linkify पाठ - एकल पाठ दृश्य में Spannable पाठ - ट्विटर ट्वीट की तरह के रूप में

पाठ है

"यह कीवर्ड के साथ सरल पाठ और लिंक ब्राउज़ करने के लिए है" ऊपर पाठ मैं बनाना चाहते में

.. लिंक पर

क्लिक कि URL खोलने के लिए चला जाता है और उस कीवर्ड ओ पर क्लिक पेन मेरे आवेदन में एक नई गतिविधि

भी, पूरे टेक्स्ट व्यू के लिए एक क्लिक ईवेंट भी है।

कृपया मुझे एक समाधान खोजने में मदद। धन्यवाद, एमकेजेपेरेख

+0

मुझे लगता है कि आप की जाँच करनी चाहिए: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/text/Link.html http://developer.android.com/ संसाधन/लेख/विकिनोट्स- linkify.html –

+2

ठीक है, मुझे लगता है कि आप यही चाहते हैं [एंड्रॉइड कस्टम हाइपरलिंक्ड टेक्स्ट व्यू] (http://webcache.googleusercontent.com/search?q=cache:http://www। orangeapple.org/) –

+1

@Lalit Poptani यह मदद की मुझे धन्यवाद – user609239

उत्तर

6

मैं एक ही बात जो मैं This Question

कि के लिए में उत्तर यहां मैं इस LinkEnabledTextView का इस्तेमाल किया है और मुझे काम करने के लिए के लिए है कि आसान हो इस्तेमाल किया है।

-2

कीवर्ड और विभिन्न टेक्स्ट व्यू में लिंक बनाएं।

फिर TextView.onClickListener() आप यह कर के बाद निर्धारित किया है।

यह सबसे आसान तरीका है, और अधिक तर्कसंगत तरीका है। निम्नलिखित तरीके

TextView t3 = (TextView) findViewById(R.id.text3); 
t3.setText(Html.fromHtml("This is the Simple Text with 
    <a href=\'http://www.google.com\'>Keyword</a> and the 
    <a href='startActivityFromLink://some_info'>Link</a> to browse")); 
t3.setMovementMethod(LinkMovementMethod.getInstance()); 

अपनी गतिविधि का उल्लेख करें::

<activity android:name=".TestActivity" 
     android:label="@string/app_name"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
    <intent-filter> 
     <data android:scheme="startActivityFromLink" /> 
     <action android:name="android.intent.action.VIEW" /> 
     <category android:name="android.intent.category.BROWSABLE" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 

मुझे लगता है कि यह काम करना चाहिए

+0

हाँ मुझे पता है मैं उस तरह से कर सकते हैं ... लेकिन केवल एक पाठ दृश्य लेने के लिए – MKJParekh

11

निम्नलिखित तरीके से अपने TextView उत्पन्न करें। कुछ tweaking की आवश्यकता हो सकती है। मुझे इसका परीक्षण करने का समय नहीं मिला। अगर यह काम करता है तो मुझे बताएं।

19

आप क्या कर सकते हैं एक कस्टम के रूप में नीचे ClickableSpan,

class MyCustomSpannable extends ClickableSpan 
{ 
    String Url; 
    public MyCustomSpannable(String Url) { 
     this.Url = Url; 
    } 
    @Override 
    public void updateDrawState(TextPaint ds) { 
      // Customize your Text Look if required 
     ds.setColor(Color.YELLOW); 
     ds.setFakeBoldText(true); 
     ds.setStrikeThruText(true); 
     ds.setTypeface(Typeface.SERIF); 
     ds.setUnderlineText(true); 
     ds.setShadowLayer(10, 1, 1, Color.WHITE); 
     ds.setTextSize(15); 
    } 
    @Override 
    public void onClick(View widget) { 
    } 
    public String getUrl() { 
     return Url; 
    } 
} 

और किसी गतिविधि या यूआरएल को खोलने के लिए उपयोग अपने onClick() पैदा करते हैं। मैं WebView में एक यूआरएल लोड करने के लिए एक डेमो जोड़ रहा हूं।

String text = "http://www.google.co.in/"; 
SpannableStringBuilder stringBuilder = new SpannableStringBuilder(text); 
MyCustomSpannable customSpannable = new MyCustomSpannable(
               "http://www.google.co.in/"){ 

      @Override 
      public void onClick(View widget) { 
       Intent intent = new Intent(Intent.ACTION_VIEW); 
       intent.setData(Uri.parse(customSpannable.getUrl())); 
       startActivity(intent); 
      } 
     }; 
     stringBuilder.setSpan(customSpannable, 0, text.length(), 
             Spannable.SPAN_INCLUSIVE_INCLUSIVE); 

     textView.setText(stringBuilder, BufferType.SPANNABLE); 
     textView.setMovementMethod(LinkMovementMethod.getInstance()); 
+0

जवाब के लिए धन्यवाद की जरूरत है, यह मुझे एक बहुत मदद की। – MKJParekh