【问题标题】:How to add a hyperlink to text in custom dialog?如何在自定义对话框中添加文本超链接?
【发布时间】:2019-02-07 10:30:35
【问题描述】:

我有一个自定义对话框,里面有一个 Textview。我想在文本中添加一个超链接。我尝试使用setMovementMethod(LinkMovementMethod.getInstance()),但它仍然无法正常工作。但是,当我将它应用于不在我的自定义对话框中的文本视图时,它会起作用。

这是我的对话。

final Dialog dialog = new Dialog(this);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setCancelable(true);
    dialog.setContentView(R.layout.license_dialog_layout);

    TextView text = dialog.findViewById(R.id.text_dialog);

    String str = "Link";
    text.setText(context.getResources().getString(R.string.my_link, str));

    dialog.show();
    text.setMovementMethod(LinkMovementMethod.getInstance());

我的字符串资源:

<string name="my_link"><a href="https://www.google.com/">%1$s</a></string>

XML:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:autoLink="web"
    android:id="@+id/text_dialog" />

【问题讨论】:

    标签: android hyperlink dialog textview android-alertdialog


    【解决方案1】:

    使用这一行:

    text.setText(Html.fromHtml(context.getResources().getString(R.string.my_link)));
    

    【讨论】:

      【解决方案2】:

      尝试移动您的text.setMovementMethod(LinkMovementMethod.getInstance());dialog.show();之前,

      由于您在 string.xml 中定义了 html 文本,请尝试按如下方式获取它,然后将其设置为您的 textview。

      mTextView.setText(getText(R.string.my_styled_text));
      

      这会选择带有样式的文本,而不仅仅是字符串,如getString(),因此你不需要Html.fromHtml()

      注意:- getString() 可能要求您将字符串包含在 CDDATA 中,例如:-

      <string name="foo"><![CDATA[<a href="https://www.google.com/">Link</a>]]></string>
      

      【讨论】:

      【解决方案3】:

      终于解决了。 2 东西不见了。

      首先我必须像这样将我的字符串包含在 CDATA 中:

      <string name="my_link"><![CDATA[<a href="https://www.google.com/">%1$s</a>]]></string>
      

      然后我就改了这一行:

      text.setText(Html.fromHtml(getResources().getString(R.string.my_link, str)));
      

      【讨论】:

        猜你喜欢
        • 2011-04-27
        • 2011-01-28
        • 2011-12-08
        • 2012-10-05
        • 2011-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多