单击textview Android中的特定单词时如何从字符串中提取单词

时间:2016-11-03 06:49:51

标签: android

现在我想清楚地解释一下,现在在Activity我有一个长字符串,例如一个有50个字的字符串。

当我点击一个单词时,我只想获得该单词。 例如:如果我点击Apple,该词应该在Log中打印出来。

text1.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        Layout layout = ((TextView) v).getLayout();
        int x = (int) event.getX();
        int y = (int) event.getY();
        if (layout != null) {
            int line = layout.getLineForVertical(y);
            int offset = layout.getOffsetForHorizontal(line, x);
            Log.v("index", "" + offset + " Line :" + line);
        }
        return true;
    }
});

我试过了,我只能得到补偿点,但不知道怎么弄清楚。

先谢谢

3 个答案:

答案 0 :(得分:1)

我希望它能帮助你找到onclick单词,正如你所提到的那样,你找到了偏移位置

    var keepLooping = true;
    (function ontimeout(){
        if(keepLooping){
            doTheAction();
            setTimeout(ontimeout, Math.random() * 100);
        }
    })();

答案 1 :(得分:0)

如果您要定位API级别14+,则可以使用getOffsetForPosition()。

对于之前的Android版本,请查看您是否可以从Android源代码复制此方法的代码并扩展您自己的TextView。

答案 2 :(得分:0)

您可以使用getOffsetForPosition()