0

这里真的很愚蠢的问题,但无法找到答案谷歌搜索。

我有一个可点击的文本视图。如何检索被点击的行号?

4

1 回答 1

3

这个问题并不是那么愚蠢,因为据我所知,没有内置的方法可以做到这一点。

但是,您可以使用:


基本示例:

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()文档中:

请注意,文本中的标记可能会导致个别行高于或低于此高度,并且布局可能包含额外的第一行或最后一行填充。

因此,如果您修改了上面列出的任何属性,您也需要考虑到这一点。

于 2012-10-21T20:20:23.143 回答