Android:DialogPreference中的可点击超链接

时间:2010-11-28 13:49:41

标签: android user-interface hyperlink

我想要完成的任务:在DialogPreference显示的消息文本中创建一个clickabel超链接。

到目前为止我的解决方案:请按照以下主题进行操作: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 个答案:

答案 0 :(得分:2)

嗯,我不确定但是试试这个:

  • 使用yourTextVeiw.setText(<)创建textView,将字符串设置为文本
  • 为此textView设置onClickListener
  • 现在将此textView设置为对话框,尝试使用addView(textview),方法。

答案 1 :(得分: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;
  }
}