2011-06-10 68 views
14

我有一个TextView,我想让用户从中选择一系列文本。 TextView占据了设备的整个宽度和高度(减去顶部的一些填充和标题)。在EditText中,如果您长时间点击,您会看到一个选择覆盖图,允许您设置选择的左右边界。我想在TextView中使用此功能。我已经阅读了API级别9(2.3)(http://developer.android.com/sdk/android-2.3.html)中有新的文本选择控件,但是我很难实现这一点。我现在正在这样做:如何让用户在TextView中选择文本范围(类似于EditText)

eic = new InputConnection(bookTextView); 
eic.beginBatchEdit(); 

但它没有做任何明显的事情。有谁知道如何正确使用InputConnection?谢谢。

编辑:我不一定需要使用我以上尝试的东西。我最终想要使用TextViewEditText,它的外观和感觉像是TextView,并且能够使用拖动光标选择文本。然后我想用各种上下文菜单选项(或弹出选定文本上方的菜单)来操作选定的文本。

回答

18

这里是一个想法。增加一个EditText有一个TextView的背景下,这是一个例子

<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> 

中的TextView

的地方添加到您的XML
+1

编辑已被弃用,你可以使用'安卓的inputType =“无”' – Calin 2015-02-12 11:44:06

0

您可以显示在文本WebView并启用文本选择。如果你只想使用textview/edittext,here是可以帮助你的答案,here是Spannable类的信息,可以帮助你实现你想要的。

0

其实,你不必自行开发此功能。您只需要使用EditText代替TextView,而将android:editable的EditText设置为false。我的想法和沙地一样。

我的代码是在这里,希望它可以帮助你:

https://stackoverflow.com/a/11026292/966405

1

长时间上网冲浪后找到一个解决方案,我者优先创建自己的类

https://github.com/orionsource/SelectableTextViewer

enter image description here

目标特征:

  1. 易于使用 - 只有一类文本和HTML
  2. 支持。fromHtml
  3. 可以在滚动型与正确的触摸
  4. 游标可以重新定义
  5. 选择
  6. 颜色可以重新定义
+0

@德米特里·内列波夫。非常感谢 。 – 2015-11-04 09:16:35