代码之家  ›  专栏  ›  技术社区  ›  Greg Giacovelli

安卓:有没有可能在文本视图中设置一个带有部分文本焦点的跨区?

  •  2
  • Greg Giacovelli  · 技术社区  · 14 年前

    我现在有这个。

    ClickableSpan span = new ClickableSpan(...){...};
    
    String text = "I am some <b>awesome</b> text";
    Spanned spanned = Html.fromHtml(text);
    SpannableStringBuilder builder = new SpannableStringBuilder(spanned);
    int start = builder.nextSpanTransition(0, builder.length(), StyleSpan.class);
    int stop = builder.nextSpanTransition(start, builder.length(), StyleSpan.class);
    builder.setSpan(span, start, stop, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
    textView.setText(builder);
    

    文本视图呈现的文本带有粗体和下划线的单词“awesome”(yay)。但是在我的视图中,我无法聚焦在ClickableSpan中指定的文本的子区域。我可以用触摸事件点击它,但我不能集中注意力。我正在Android 1.5+2.1上测试这个。我也试过厄尔斯潘。

    我也尝试过将onclick侦听器实际附加到整个文本块,而不是使用clickablespan,但这并不能提供区域焦点,只是使单击更容易。请帮助

    1 回复  |  直到 14 年前
        1
  •  2
  •   Greg Giacovelli    14 年前

    好吧,我刚想好了。我最初看的是urlspan文档,然后盲目地实现了clickablespan。

    textView.setMovementMethod(LinkMovementMethod.getInstance());
    

    神奇地通过这个无证阶层的力量…它起作用了。所以基本上我认为,movementmethod是一种为textview提供处理光标输入策略的方法。