【问题标题】:Android set autoLink attribute programmaticallyAndroid以编程方式设置autoLink属性
【发布时间】:2015-10-21 11:54:46
【问题描述】:
<TextView
    android:text="123456789"
    android:autoLink="phone">
</TextView>

我想从代码中创建这个 TextView,但是我遇到了无数问题。

首先,我创建了一个 TextView 并添加了这个:

tw_phone.setAutoLinkMask(0x04);

这导致了一个可单击的 TextView,但是当您单击时,吐司说“没有应用程序可以执行此操作”或类似的内容。我也试过

Linkify.addLinks(tw_phone, Linkify.PHONE_NUMBERS); //and .ALL

但它给了我同样的结果。

当我决定在 StackOverflow 上提问时,我试图删除我的代码,以防我使用 Layouts 的方式出现问题(你永远不知道),但现在我什至无法让 TextView 可点击。这是我认为应该可以工作的代码,因为它只是我在代码中更深入地使用的代码的精简版本。

TableLayout table = (TableLayout) findViewById(R.id.tableResult);
TableRow row = new TableRow(this);
TextView tw = new TextView(this);
tw.setText("123456789");
tw.setAutoLinkMask(Linkify.ALL);
row.addView(tw);
table.addView(row);

有人可以写一个简单的小例子来说明如何创建一个 TextView,给它一个数字作为文本,然后允许用户单击它并选择他们想要打开数字的任何应用程序吗? 如果您也可以指出我的代码中的错误,那会很棒,但我更愿意立即得到答案。我尝试过的东西取自其他 StackOverflow 问题和答案。

【问题讨论】:

  • 可能问题出在您在 textview 上设置的文本上,您是否尝试过使用“tel:123456789”?
  • 两个地方都试过了。在我的“工作”链接中,电话:放在数字前面,但只有数字是可点击的。在我死掉的、不可点击的例子中,根本没有什么是可点击的……
  • 我可以使用 tw.setText("1-XXX-XXX-XXXX"); tw.setAutoLinkMask(0x04);并一键拨打电话。

标签: java android linkify


【解决方案1】:
TextView tv_contatti2 = new TextView(this); tv_contatti2.setText(contatti);
Linkify.addLinks(tv_contatti2, Linkify.PHONE_NUMBERS);
tv_contatti2.setLinksClickable(true);

其中“contatti”的值是 +39012345678,带有国际前缀

【讨论】:

    猜你喜欢
    • 2012-08-20
    • 2017-08-05
    • 2011-03-15
    • 2021-06-22
    • 1970-01-01
    • 2023-01-03
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多