2011-09-27 8 views
16

안드로이드 Linkify 텍스트 - 단일 텍스트보기 Spannable 텍스트 - 트위터 트윗 등 내가</p> <p>같은 텍스트 뷰와 텍스트가

"이것은 의 키워드과 간단한 텍스트와 링크 탐색하는 것입니다" 내가 만들고 싶어 위의 텍스트

.. 링크에

클릭하면 해당 URL을 열어가는 및 해당 키워드 오에 클릭 pen 내 응용 프로그램의 새로운 활동

전체 텍스트보기 짝수에 대한 클릭 이벤트가 있습니다.

해결책 찾기를 도와주세요. 감사합니다, MKJParekh

+0

내가 확인해야한다고 생각합니다. http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/text/Link.html http://developer.android.com/ resources/articles/wikinotes-linkify.html –

+2

글쎄,이게 네가 찾고있는 것 같다 [Android Custom Hyperlinked TextView] (http://webcache.googleusercontent.com/search?q=cache:http://www. orangeapple.org/) –

+1

@Lalit Poptani 감사합니다. – user609239

답변

-2

다른 TextViews로 키워드 및 링크를 만듭니다.

그런 다음 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

는 다음과 같은 방법으로 당신의 텍스트 뷰를 생성합니다. 약간의 조정이 필요할 수 있습니다. 나는 그것을 시험 할 시간을 얻지 못했다. 작동하는지 알려주세요. 당신이 할 수있는 일

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; 
    } 
} 

그리고 활동 또는 URL을 열기위한 사용의 onClick()을 만드는 것입니다. WebView에 URL을로드하기위한 데모를 추가하고 있습니다.

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

관련 문제