2010-11-28 6 views
1

DialogPreference가 표시하는 메시지 텍스트에서 clickabel 하이퍼 링크를 만들려고합니다 :Android : DialogPreference에서 클릭 할 수있는 하이퍼 링크

지금까지 내 솔루션 : link을하고, 나는 DialogPreference에 표시되는 형식화하는 하이퍼 링크를 수행하지만,이 하이퍼 링크를 클릭 할 수 없습니다 오전 :이 주제를 따르십시오.

질문 : DialogPreference에서 하이퍼 링크를 클릭 할 수있게 만드는 방법.

내 코드 :

public class AboutDialog extends DialogPreference { 
public AboutDialog(Context oContext, AttributeSet attrs) 
{ 
    super(oContext, attrs); 
    final SpannableString s = new SpannableString(oContext.getText(R.string.about_text)); 
    Linkify.addLinks(s, Linkify.ALL); 
    this.setDialogMessage(s); 
}} 

답변

2

글쎄, 나는 확실하지 않다 그러나이 시도 : 그것은 yourTextVeiw.setText를 사용하여 텍스트의로

  • 가 텍스트 뷰를 만들고, 당신의 캐릭터의 설정 (들)
  • 이 텍스트보기에 대해 onClickListener를 설정하십시오.
  • 이제이 textView를 대화 상자에 설정하고 addView (textview) 메소드를 사용해보십시오.
+0

비브, 답장을 보내 주셔서 대단히 감사 작동하는 것 같다. – ycz

+0

내 기쁨 ....... 신의 축복 – viv

+0

viv, 답장을 보내 주셔서 대단히 감사합니다. 그러나 그것은 효과가 없습니다. DialogPreference는 onBindView (View)를 가지고 있습니다. 당신 방식으로 여러 가지 방법을 시도했지만 작동하지 않습니다. 이제 다른 API를 DialogPreference를 사용하려고 시도합니다. – ycz

0

이것은

package net.anei.cadpage.preferences; 

import android.content.Context; 
import android.os.Bundle; 
import android.text.SpannableString; 
import android.text.method.LinkMovementMethod; 
import android.text.util.Linkify; 
import android.util.AttributeSet; 
import android.view.View; 
import android.widget.TextView; 

public class DialogPreference extends android.preference.DialogPreference { 
    public DialogPreference(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    } 

    public DialogPreference(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
    } 

    @Override 
    protected View onCreateDialogView() { 
    final SpannableString s = new SpannableString(getDialogMessage()); 
    Linkify.addLinks(s, Linkify.WEB_URLS); 
    final TextView view = new TextView(getContext()); 
    view.setText(s); 
    view.setMovementMethod(LinkMovementMethod.getInstance()); 
    return view; 
    } 
}