ここで本当にばかげた質問ですが、グーグルで答えを見つけることができませんでした。
クリック可能なテキストビューがあります。クリックされた行の番号を取得する方法は??
これを行うための組み込みメソッドがないため、質問はそれほど愚かではありません。
ただし、次を使用できます。
getLineHeight()
TextView 内の各行の高さを決定し、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()
ドキュメントから:
テキスト内のマークアップにより、個々の行がこの高さよりも高くなったり短くなったりする可能性があり、レイアウトには追加の最初または最後の行のパディングが含まれる場合があることに注意してください。
したがって、上記の属性を変更した場合は、それも考慮する必要があります。