2010-11-28 4 views
1

Ce que j'essaie d'accomplir: créer un lien hypertexte clickabel dans le texte du message affiché par un DialogPreference.Android: liens hypertexte cliquables dans DialogPreference

Ma solution à ce jour: suivre ce sujet: link, et je suis accompli un lien hypertexte formating affiché dans le DialogPreference, mais ce lien pas cliquable.

Question: Comment rendre le lien hypertexte cliquable dans DialogPreference.

mon code:

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

Répondre

2

Eh bien, je ne suis pas sûr, mais essayez ceci:

  • Créer textView, définissez votre chaîne s comme il est texte, en utilisant yourTextVeiw.setText (s)
  • activé onClickListener pour ce texteAfficher
  • Maintenant, définissez ce texte dans une boîte de dialogue, essayez d'utiliser la méthode addView (textview).
+0

viv, merci beaucoup pour votre réponse. – ycz

+0

mon plaisir ....... que Dieu vous bénisse – viv

+0

viv, merci beaucoup pour votre réponse. Mais ça ne marche pas. le DialogPreference a juste onBindView (View). J'ai essayé différentes méthodes sur votre chemin, mais ça ne marche pas. maintenant j'essaie d'utiliser d'autres API prendre en charge le DialogPreference :) – ycz

0

Cela semble fonctionner

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