在Java-Android中设置Link Clickable

Dav*_*run 7 java android android-widget android-ui

我正在设计一个应用程序,其中有TextView,并根据一些检查条件,我想在Java端点击TextView中的链接/电话号码.我可以这样做,我不想让它在默认情况下可点击,这是通过在xml文件中设置完成的

 android:autoLink="all" 
Run Code Online (Sandbox Code Playgroud)

我已经尝试过:创建常规TextView,不要设置autoLink ="all",

     TextView myView = 
                (TextView)view.findViewById(R.id.thisIstheTextView);
       myView .setLinksClickable(true);
Run Code Online (Sandbox Code Playgroud)

还尝试过:

     myView .setMovementMethod(LinkMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)

以上Java代码都不起作用,我不想要预先设计的xml TextView启用autoLink,我想根据if()条件更改Java代码中的TextView行为.我的代码没有错误,但我无法实现我想要的.你能分享一下你的知识吗?谢谢.

Squ*_*onk 13

使用setAutoLinkMask (int mask).

可以组合的可能值是maskLinkify类定义的.

  • 对不起,我不同意 - 它确实有用.你需要在调用`setText(...)`之前调用它,但是在它已经包含文本之后它不会改变`TextView`中的链接.您的问题询问如何根据您要显示的可点击/链接项目(电话号码等)"基于某些已检查条件"更改"TextView"的行为.我假设你会做检查,然后设置自动链接掩码然后设置文本. (9认同)

Dav*_*run 5

 Linkify.addLinks(myView, Linkify.ALL);
Run Code Online (Sandbox Code Playgroud)

修复了这个问题.