如何在单个textview中为特定文本和单击侦听器设置颜色

时间:2018-07-31 11:19:10

标签: android

我是这个Android开发的新手...我想知道这些 #tag 如何在 Instagram和其他中工作...任何人都知道如何做到这一点.. enter image description here

在我的数据库树中查找..在这里,我有描述和标记... 我正在获取对文本视图的描述... 如果description.contains("#jb")是我想要的。.我希望文本#jb为蓝色,并且我希望#jb文本应具有onclicklistner()

请帮助我尝试过的人,但这会使整个文本变成蓝色,我希望特定的“ #tag”文本变成蓝色..我该怎么做..

2 个答案:

答案 0 :(得分:1)

您可以使用Spannable String

要更改特定字符序列的颜色,可以使用Forground Color Span

要添加点击监听器,您可以使用Clickable Span

答案 1 :(得分:0)

使用this library可以设置 自定义颜色并单击侦听器

dependencies {
    implementation 'com.github.danylovolokh:hashtag-helper:1.1.0'
}

要从文本中获取所有主题标签。

// get all hashtags with "#", example: "#blueeyes"
List<String> allHashTags = mTextHashTagHelper.getAllHashTags(true);

// get all hashtags without "#", example: "blueeyes"
List<String> allHashTags = mTextHashTagHelper.getAllHashTags(false);

它将为您提供标签,并为您提供点击监听器

mTextHashTagHelper = HashTagHelper.Creator.create(getResources().getColor(R.color.colorPrimary), new HashTagHelper.OnHashTagClickListener() {
    @Override
    public void onHashTagClicked(String hashTag) {

    }
  });

  // pass a TextView or any descendant of it (incliding EditText) here.
  // Hash tags that are in the text will be hightlighed with a color passed to HasTagHelper
  mTextHashTagHelper.handle(mHashTagText);
}