如何使其他文本之间的链接可以访问

VIN*_*VIN 6 android accessibility linkmovementmethod urlspan

我有一个CheckedTextBox,其文本由两个SpannableStrings组成,其中一个是一个URLSpan.

我的问题是,如何让用户可以通过每个跨度移动可访问性焦点,最终专注于URLspan本身?setMovementMethodsetLinksClickable似乎并没有为我工作.

SpannableStringBuilder builder = new SpannableStringBuilder();

SpannableString label = new SpannableString(getString(R.string.label));
label.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.text_color_primary)), 0, label.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
builder.append(label);

SpannableString link = new SpannableString(getString(R.string.link);
link.setSpan(new URLSpan(mUrl), 0, link.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
builder.append(link);
builder.append(".");

mCheckedTextBox.setText(builder);

//The following two methods do not work for what I'm trying to accomplish:
mCheckedTextBox.setMovementMethod(LinkMovementMethod.getInstance());
mCheckedTextBox.setLinksClickable(true);
Run Code Online (Sandbox Code Playgroud)

我已经检查了Android辅助功能帮助文档,看起来只要用户听到一个铃声并且可以在本地上下文菜单中看到链接就足够了.但是,我想看看我是否可以加倍努力使用户能够滚动并聚焦到文本的链接部分. https://support.google.com/accessibility/android/answer/6378148?hl=en

任何帮助,将不胜感激.

小智 0

也许这可能是最简单的解决方案......它对我有用。

textView.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
      ClassroomLog.log(TAG, "Textview Click listener ");
      if (textView.getSelectionStart() == -1 && textView.getSelectionEnd() == -1){
          // Perform your action here
      }
  }
});
Run Code Online (Sandbox Code Playgroud)