这里真的很愚蠢的问题,但谷歌找不到答案。
我有一个可点击的textview。 如何检索单击的行号?
答案 0 :(得分:3)
问题不是那么愚蠢,因为我知道没有内置方法可以做到这一点。
但是你可以使用:
getLineHeight()
确定TextView和/ / li>中每行的高度
{li> MotionEvent#getY()
在OnTouchListener中计算点击了哪一行。基本示例:
textView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP) {
float line = FloatMath.floor(event.getY() / textView.getLineHeight());
Toast.makeText(getBaseContext(), "" + line, Toast.LENGTH_SHORT).show();
}
return false;
}
});
来自getLineHeight()
文档:
请注意,文本中的标记可能会导致单个行比此高度更高或更短,并且布局可能包含额外的第一行或最后一行填充。
因此,如果您修改了上面列出的任何属性,那么您也需要考虑到这一点。