gpt4 book ai didi

android - TextView 中字符串中的 OnClick 位置

转载 作者:IT老高 更新时间:2023-10-28 23:39:05 26 4
gpt4 key购买 nike

我不知道该怎么做,但是我想知道当一个人单击 TextView 上的某个位置时,是否有办法在 TextView 中的字符串中获取位置(索引)。所以,如果有人点击下面的TextView:

Hello I'm Vinay Hiremath.

在第一个“H”上,onClick 事件将获得整数 0。或者,如果有人单击“V”,它将获得 10,依此类推。

任何帮助,像往常一样,非常感谢。如果这在 Android Developers 上公然公开,请随意称我为白痴并扔石头.

最佳答案

所以我最终通过 James Moore 评论 here 中的链接解决了这个问题.我最终在该链接中使用了 Tony Blues 的解决方案。该解决方案是这样的:

1.) 为 TextView 设置一个 onTouchListener。

2.) 获取 TextView 的布局。

3.) 通过事件获取触摸的x,y坐标。

4.) 根据该事件查找行和偏移量(索引)。

以下代码示例是如何在给定名为 manip 的 TextView 的情况下记录(详细)触摸的索引:

manip.setOnTouchListener(new View.OnTouchListener() {
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);
}
return true;
}
});

编辑:Rahul Mandaliya 提醒我注意,如果 TextView 上有填充,则此代码将失败。不幸的是,我已经很长时间没有编写任何 Android 代码了,所以我不确定如何更新这个答案来解决这个问题。直观地说,如果您知道填充值,您似乎可以对点击事件进行某种检查。很抱歉不能在这个边缘案例上提供更多帮助。 :-(

关于android - TextView 中字符串中的 OnClick 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6285682/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com