gpt4 book ai didi

android - 在 TextView 中创建超链接

转载 作者:行者123 更新时间:2023-11-30 02:15:10 25 4
gpt4 key购买 nike

我正在创建一个聊天应用程序,每次我输入一些文本并按下发送时,我都会以编程方式创建一个新的 TextView 并像这样添加到我现有的 LinearLayout -

public void addTextView(LinearLayout view, String text) {
TextView chatTextView = new TextView(getActivity());
chatTextView.setLinksClickable(true);
chatTextView.setMovementMethod(LinkMovementMethod.getInstance());
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
chatTextView.setLayoutParams(lp);
// chatTextView.setAutoLinkMask(Linkify.ALL);
chatTextView.setText("me: " + Html.fromHtml(text));
view.addView(chatTextView);
}

根据 answer 1this question我添加了
chatTextView.setMovementMethod(LinkMovementMethod.getInstance()); 到这个 TextView 但我的链接仍然不可点击。 (在模拟器上测试,这段代码在 fragment 中)

我想在这里添加的文本是 -

<a href="http://www.google.com">url</a>

已经尝试过-

  1. autoLink = web(它将突出显示直接 URL(即 www.google.com)但不突出超链接(即 href)。
  2. Linkify.WEB_URL

编辑

我现在进行了测试,发现如果 textview 来自 xml 布局,setMovementMethod 可以很好地处理超链接,但如果它是动态的,则不起作用。

最佳答案

你可以使用这个:

String text = "<font color=#ff0000><b><u>"+ "click here" +"</b></u></font>";
textview.setText(Html.fromHtml(text));
textview.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

Intent internetIntent = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://www.google.com"));
internetIntent.setComponent(new ComponentName("com.android.browser","com.android.browser.BrowserActivity"));
internetIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(internetIntent);
}
});

关于android - 在 TextView 中创建超链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29488580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com