【问题标题】:I want text view as a clickable link我想要文本视图作为可点击的链接
【发布时间】:2013-07-26 12:02:22
【问题描述】:
<TextView
    android:id="@+id/link"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:text="Forget password?"
    android:autoLink="all"
    android:linksClickable="true"
    android:textColor="@color/lgreen"
    android:textStyle="italic"
     />

Android 正在突出显示 TextView 中的链接,但它们不响应点击。有人可以告诉我如何将其作为可点击并移至另一个链接。 我通过查看示例尝试了更多次。但我不能。有人可以清楚地解释我如何将文本视图更改为可点击的链接。

【问题讨论】:

标签: android hyperlink textview clickable


【解决方案1】:

所有测试和工作 100%
下面是一个完整的例子
解决方案:android:autoLink="web"
示例 Xml:

<TextView
    android:id="@+id/txtLostpassword"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:autoLink="email"
    android:gravity="center"
    android:padding="20px"
    android:text="@string/lostpassword"
    android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
    android:id="@+id/txtLostpassword"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:autoLink="web"
    android:gravity="center"
    android:padding="20px"
    android:text="@string/defaultpassword"
    android:textAppearance="?android:attr/textAppearanceSmall" />

string.xml中的字符串

<string name="lostpassword">If you lost your password please contact <a href="mailto:support@cleverfinger.com.au?Subject=Lost%20Password" target="_top">support@cleverfinger.com.au</a></string>

<string name="defaultpassword">User Guide <a href="http://www.cleverfinger.com.au/user-guide/">http://www.cleverfinger.com.au/user-guide/</a></string>

【讨论】:

  • 知道为什么链接不可点击吗?
【解决方案2】:

您可以将点击监听器添加到 TextView 并开始网络搜索:

textView.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View view)
    {
         Intent browser= new Intent(Intent.ACTION_VIEW, Uri.parse(PASTE_YOUR_URL_HERE));  
         startActivity(browser);  
    }

});

xml 看起来像:

<TextView  
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content"  
    android:text="@string/link_string"  
    android:textSize="14dp"  
    android:autoLink="web" /> 

【讨论】:

    【解决方案3】:

    在字符串文件中放入这段代码

    <string name="link">'<a href="http://www.www.com" >ForGet Password</a>'</string> 
    

    在 XML 文件中

    android:text="@string/link"
    

    【讨论】:

    • 文本视图不可点击兄弟。我现在能做什么。
    • 你到底想要什么,请解释一次
    • 我已经按照你上面说的做了。但现在也无法点击。我不知道问题又出在哪里。
    • 注意字符串周围的单引号。我没有尝试过,但几乎编辑了这个答案,然后看到了那些引号。其他方式在这里描述:stackoverflow.com/a/7641177/826946
    【解决方案4】:

    在您的onCreate() 方法中输入以下代码:

    TextView clickableTextLink = (TextView)findViewById(R.id.your_textview_id); clickableTextLink.setMovementMethod(LinkMovementMethod.getInstance());
    

    我尝试了多种解决方案。但这对我来说非常有效。

    【讨论】:

      【解决方案5】:

      这是最简单易懂的代码

      TextView link = (TextView) findViewById(R.id.hyper);
      String linkText = "This is my website <a href='http://programondaspot.blogspot.com'>Programondaspot</a> .";
      link.setText(Html.fromHtml(linkText));
      link.setMovementMethod(LinkMovementMethod.getInstance());
      

      看看这个post

      编码愉快!

      【讨论】:

        【解决方案6】:

        这是编辑后的答案

        您好,您可以尝试在 layout.xml 文件中替换它

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:text="visit the site at www.google.com from here"
            android:autoLink="all"
            android:clickable="true"
            android:linksClickable="true"
            android:textAppearance="?android:attr/textAppearanceLarge" />
        

        我已经尝试过了,它肯定会奏效。并将“www.google.com”视为网络链接

        【讨论】:

        • 我添加了你上面所说的内容。但它在这样的字符串中显示错误 在这一行找到多个注释:-错误:撇号前面没有\(在'中)-错误:找到文本“忘记密码?”项目标签在哪里
        • 现在作为一个快速解决方案,尝试编写“ForGet Password”而不是 R.string.link 并忘记 string.xml
        • 试试这个编辑过的答案
        • 这只是再次更改的文本名称。我希望该文本作为可点击的链接。在我的代码中,当我单击忘记密码意味着它会直接移动到网页,正如我在 string.xml 文件的文本背景中提到的那样。希望你能理解。
        • 那么老大,你为什么要头痛,请保留一个带有背景的按钮 =“#00000000”,然后单击该按钮调用在浏览器中加载您的 URL 的意图。试试看
        【解决方案7】:

        这是经过 Android N 测试的简单实现

            String termsText = "By registering, you are agree to our";
            String termsLink = " <a href=https://www.yourdomain.com/terms-conditions.html >Terms of Service</a>";
            String privacyLink = " and our <a href=https://www.yourdomain.com/privacy-policy.html >Privacy Policy</a>";
            String allText = termsText + termsLink + privacyLink;
        
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                ((TextView) findViewById(R.id.text_terms_conditions)).setMovementMethod(LinkMovementMethod.getInstance());
                ((TextView) findViewById(R.id.text_terms_conditions)).setText(Html.fromHtml(allText, Html.FROM_HTML_MODE_LEGACY));
            } else {
                ((TextView) findViewById(R.id.text_terms_conditions)).setMovementMethod(LinkMovementMethod.getInstance());
                ((TextView) findViewById(R.id.text_terms_conditions)).setText(Html.fromHtml(allText));
            }
        

        【讨论】:

          【解决方案8】:

          只需将 onClick 标记添加到您的 TextView 中,该标记等于定义的函数。如下所示

          <TextView
            android:id="@+id/link"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:text="Forget password?"
            android:autoLink="all"
            android:linksClickable="true"
            android:textColor="@color/lgreen"
            android:textStyle="italic"
            android:onClick="callFunction"/>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-07-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-09-02
            相关资源
            最近更新 更多