我正在尝试构建一个Android输入控件,允许用户通过将不同的设置短语用螺栓连接来构建一段文本,然后对其进行编辑。例如,以下设定短语可能是预先定义的:
构建一个有意义的段落需要不止一个短语。此外,一旦输入,短语本身将需要是可编辑的:例如,在第一组短语中,必须在“继续”和“英里”之间插入数字。这是一个段落的例子,可以想象在这些短语的帮助下构建:
向北行驶42英里,仰望天空,然后向南行驶21英里。开始挖宝藏,挖到地下3米处。
到目前为止,我已经尝试了两种主要方法来实现这一目标:
我尝试向EditText
添加一个上下文菜单,由长按启动。上下文菜单的条目各自对应于设定短语。不幸的是,内置的Android长按菜单接管了(剪切/复制/粘贴选项),因此无法看到我的上下文菜单。
我尝试使用带有MultiAutoCompleteTextView
的{{1}},从资源文件加载短语。这似乎很有希望,但它在每个短语后强制使用逗号。此外,编辑变得非常不友好 - 退格逗号会删除整个插入的短语。我想构建一个全新的Tokenizer是一种可能性,但是我没有看到我实际可以使用什么标记,也没有看到在触发退格时如何防止删除整个标记。
我采用了不同的方法并查看了Android用户词典,看看我是否可以添加短语。不幸的是,它似乎不接受带有空格的短语。
有没有人建议我接下来要尝试什么?
感谢。
答案 0 :(得分:0)
我通过继承MultiAutoCompleteTextView
并覆盖replaceText()
方法而不是“标记为已替换”输入的短语来解决此问题。工作正常。