如何在以下情况下获取textview中特定单词的确切值: 1 - 用户录制了单词(单词可能只是某些文本块中的一个), 2 - textview在其xml布局中有android:textIsSelectable =“true”, 所以默认情况下,android允许用户突出显示特定的单词 并打开一个小菜单(复制,粘贴,分享)。我可以操作这个菜单,或者可以添加更多选项,以便扩展它并用突出显示的单词做我想做的事情吗?
我需要根据与用户的一些互动(点击,点按,选择....)
来获取确切的字词我没有找到任何直接的答案。它甚至可能吗?
(我有android htc一个x)
感谢。
答案 0 :(得分:1)
用于您的方案的更合适的组件是EditText
。
在清单文件中声明如下:
<EditText
android:text=" This is not an editable EditText"
android:id="@+id/EditText01"
android:layout_width="wrap_content"
android:textColor = "@android:color/white"
android:editable = "false"
android:cursorVisible="false"
android:layout_height="wrap_content"
android:background = "@android:drawable/dark_header">
</EditText>
然后,获取所选文本只需两行代码:
EditText et = (EditText)findViewById(R.id.title);
String selectedText = et.getText().substring(et.getSelectionStart(), et.getSelectionEnd());
在这里,我们假设文本是从左到右选择的。如果从右到左选择它,那么上面会导致异常,所以你可以通过检查起始位置是否高于结束位置来避免这种情况。