目前,我正在创建一个小型应用程序供阅读。有一个textview显示文本。我们可以将文本添加为书签并存储在列表视图中。我想从列表视图中单击并突出显示或选择textview中的书签索引。我可以得到bookmark_index
。有像textview.setSelect(Start,Length)
这样的方法吗?或者任何图书馆都能做到吗?感谢
请查看图片视图以了解我的想法。
答案 0 :(得分:2)
使用Spannable
Spannable WordtoSpan = new SpannableString("partial colored text");
WordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), startIndex, stopIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(WordtoSpan);
答案 1 :(得分:1)
这取决于您要支持的最低Android版本。
在3.0+(API Level 11及更高版本)上,TextView上有textIsSelectable属性,可以启用此行为。 E.g:
<TextView
android:id="@+id/deviceIdTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:text="" />
或者您可以使用下面的跨度自行实现此功能。
TextView myTV = (TextView)findViewById(R.id.textView1);
String textString = "StackOverFlow Rocks!!!";
Spannable spanText = Spannable.Factory.getInstance().newSpannable(textString);
spanText.setSpan(new BackgroundColorSpan(0xFFFFFF00), 14, 19, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
myTV.setText(spanText);
答案 2 :(得分:0)
也许此解决方案将帮助您提供菜单或文本选择。
我希望文本可以选择(用于复制和粘贴),或者希望其他手势可以工作。
如何以编程方式设置textSelection?
1)安装您的GestureHandler:
$section = $printWord->phpWord->addSection();
$header = $section->addHeader();
$header->firstPage();
2)切换到文本选择方式:
// Create your Touch Listener
onTouchListener = new OnSwipeTouchListener(mCtx, this);
view.setOnTouchListener( onTouchListener);
答案 3 :(得分:0)
以上所有解决方案都不适用于我。
然后我在 XML 中添加了 android:textIsSelectable="true"
,但它不起作用。
起作用的是添加textView.setTextIsSelectable(true)
在您的活动、片段或适配器中。