现在我想清楚地解释一下,现在在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;
}
});
我试过了,我只能得到补偿点,但不知道怎么弄清楚。
先谢谢
答案 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)