Android 多个文本视图还是一个具有可单击跨距的文本视图?
我有一个模型数组,每个模型代表文本中的一个单词。看起来是这样的:Android 多个文本视图还是一个具有可单击跨距的文本视图?,android,Android,我有一个模型数组,每个模型代表文本中的一个单词。看起来是这样的: ArrayList<Word> text; class Word { public String name; public boolean isPunctuationMark; ArrayList文本; 类词{ 公共字符串名称; 公共布尔值不定时标记; 我需要在活动中呈现该文本。我还需要做的是,当长时间单击某个单词时,我需要触发并激活并显示一个对话框,其中包含特定于所选单词的信息 我可以使用两种方
ArrayList<Word> text;
class Word {
public String name;
public boolean isPunctuationMark;
ArrayList文本;
类词{
公共字符串名称;
公共布尔值不定时标记;
我需要在活动中呈现该文本。我还需要做的是,当长时间单击某个单词时,我需要触发并激活并显示一个对话框,其中包含特定于所选单词的信息
我可以使用两种方法:TextView
widgetTextView
保存整个文本,但将每个单词设置为可点击span
我已经开始实施第二种方法,但是对于单击范围上的
longClick
事件没有本机支持,因此我必须自己实施。而且,乍一看,使用textview
而不是clickablespan
更容易突出显示所选单词的文本和背景。因此,现在我正在考虑尝试第一种方法。在探索这些方法时,我是否错过了一些东西?也许还有第三种架构上更正确的方法更容易实现支持长时间单击?我建议您使用一个文本视图
,因为这是一个更高效的UI。当有请求时或者一个ViewGroup
来测量它的所有子对象,只测量一个要比测量几千个快得多
我发现了一个不错的库,您可以尝试使用。它使用API级别14中添加到TextView
的方法
public int getOffsetForPosition(浮点x,浮点y)
在API级别14中添加获取最接近
指定的绝对位置。典型的用例是传递结果
将getX()和getY()的
参数x屏幕上点的水平绝对位置
y屏幕上点的垂直绝对位置返回
位置最靠近目标的字符的字符偏移量
指定的位置。如果没有布局,则返回-1
谢谢!:)因为我有
ArrayList text;
ArrayList的单词模型,我想我必须找到所选单词的模型,比较模型中的文本和所选单词,可能还有周围的单词,对吧?你知道如何使这个过程高效吗?你可以修改库以返回单词的编号,然后你就可以数组列表中具有该索引的元素…arraylist有助于从中获取内容。假设您将以与arraylist中的单词相同的顺序显示单词,这是一个好主意,让我尝试一下,然后返回:)。谢谢!