当前位置: 首页 > news >正文

福建网站优化/微信管理系统平台

福建网站优化,微信管理系统平台,广告公司品牌策划,建站报价表点击文章中的一个单词,获取它。 通过点击的坐标y来获取行数,通过x坐标获取字符偏移量,向前遍历匹配,向后遍历匹配,匹配不成功则跳出循环。截取开始位置和最后位置的字符串。 主要代码 public String getSelectText…

点击文章中的一个单词,获取它。
在这里插入图片描述

通过点击的坐标y来获取行数,通过x坐标获取字符偏移量,向前遍历匹配,向后遍历匹配,匹配不成功则跳出循环。截取开始位置和最后位置的字符串。

主要代码

public String getSelectText(int currOff) {int leftOff = currOff, rigthOff = currOff;int length = getText().toString().length();while (true) { //左移currOffif (leftOff <= 0) {break;}if (leftOff != 0) {leftOff = leftOff - 1;if (leftOff < 0) {leftOff = 0;}}String selectText = getText().subSequence(leftOff, currOff).toString();if (!selectText.matches("^[()._0-9a-zA-Z'-]*")) {leftOff += 1;break;}}while (true) { //右移currOffif (rigthOff >= length) {break;}if (rigthOff != 0) {rigthOff = rigthOff + 1;if (rigthOff > length) {rigthOff = length;}}String selectText = getText().subSequence(currOff, rigthOff).toString();if (!selectText.matches("^[()_0-9a-zA-Z'-]*")) {rigthOff -= 1;break;}}String endString = "";try {endString = getText().subSequence(leftOff, rigthOff).toString();if (!endString.trim().isEmpty()) {Selection.setSelection((Spannable) getText(), leftOff, rigthOff);//选中Log.d("WordTextView", "setSelection");} else {Log.d("WordTextView", endString);}} catch (Exception e) {e.printStackTrace();}return endString.trim();}

全部代码

主要控件

public class WordTextView extends androidx.appcompat.widget.AppCompatTextView {private Callback callback;public WordTextView(Context context) {super(context);}public WordTextView(Context context, @Nullable AttributeSet attrs) {super(context, attrs);}public WordTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}public Callback getCallback() {return callback;}public void setCallback(Callback callback) {this.callback = callback;}@SuppressLint("ClickableViewAccessibility")@Overridepublic boolean onTouchEvent(MotionEvent event) {super.onTouchEvent(event);Layout layout = getLayout();switch (event.getAction()) {case MotionEvent.ACTION_DOWN://                Selection.removeSelection(getEditableText());break;case MotionEvent.ACTION_HOVER_MOVE:break;case MotionEvent.ACTION_UP:int line = layout.getLineForVertical((int) event.getY());int off = layout.getOffsetForHorizontal(line, (int) event.getX());String selectText = getSelectText(off);if (selectText != null && callback != null) {callback.getWord(selectText);}Log.d("WordTextView1", off + "," + selectText);break;}return true;}public String getSelectText(int currOff) {int leftOff = currOff, rigthOff = currOff;int length = getText().toString().length();while (true) { //左移currOffif (leftOff <= 0) {break;}if (leftOff != 0) {leftOff = leftOff - 1;if (leftOff < 0) {leftOff = 0;}}String selectText = getText().subSequence(leftOff, currOff).toString();if (!selectText.matches("^[()._0-9a-zA-Z'-]*")) {leftOff += 1;break;}}while (true) { //右移currOffif (rigthOff >= length) {break;}if (rigthOff != 0) {rigthOff = rigthOff + 1;if (rigthOff > length) {rigthOff = length;}}String selectText = getText().subSequence(currOff, rigthOff).toString();if (!selectText.matches("^[()_0-9a-zA-Z'-]*")) {rigthOff -= 1;break;}}String endString = "";try {endString = getText().subSequence(leftOff, rigthOff).toString();if (!endString.trim().isEmpty()) {Selection.setSelection((Spannable) getText(), leftOff, rigthOff);//选中Log.d("WordTextView", "setSelection");} else {Log.d("WordTextView", endString);}} catch (Exception e) {e.printStackTrace();}return endString.trim();}public interface Callback {void getWord(String word);}
}

使用

 WordTextView main_wtv = findViewById(R.id.main_wtv);main_wtv.setText(content);TextView textView = findViewById(R.id.main_tv_word);main_wtv.setCallback(new WordTextView.Callback() {@Overridepublic void getWord(String word) {textView.setText(String.format("单词:%s", word));}});

布局

不要设置inputType,否则点击选词失效

 <com.jn.yyz.testone.WordTextViewandroid:id="@+id/main_wtv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:lineSpacingMultiplier="1.5"android:paddingStart="10dp"android:paddingEnd="10dp"android:text="Hello World!"android:textIsSelectable="true"android:textSize="18sp"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@id/main_tv_word" />
http://www.cadmedia.cn/news/163.html

相关文章:

  • 成都商城网站制作/网络媒体
  • 建设银行互联网网站/网页设计与制作教程
  • 凡科网站建设好/广东又出现新病毒
  • 湖北做网站平台哪家好/百度seo霸屏软件
  • 做空比特币网站/谷歌商店下载官方正版
  • 一般网站开发公司/友情链接怎么购买
  • 广州工程公司有哪些/爱站网seo
  • 网页制作简单/网站seo策划方案实例
  • 网上兼职网站哪个好/搜索引擎营销的案例有哪些
  • 长治网站制作一般需要多少钱/2019网站seo
  • 网站推广一般在哪个网做/成人专业技能培训机构
  • 图片网站建设/优秀营销软文范例500字
  • 校园网站建设计划书/友情链接是什么意思
  • 四川工程信息网官网/seo批量建站
  • 安徽省工程建设信息网官方网站/2022年新闻摘抄简短
  • 日本真人做爰视频免费网站/厦门seo俱乐部
  • 网站服务器 2核/东莞疫情最新情况
  • 企业网站价格/查关键词排名软件
  • 黄岛网站建设/临安网站seo
  • 鞍山做网站公司/厨师培训
  • 兰州手机网站制作公司哪家好/网站建设对企业品牌价值提升的影响
  • 网站建设为了什么/seo 0xu
  • wordpress建站以后/常德政府网站市民留言
  • 山西太原网站制作/seo自学网
  • 网页设计作品网站/百度快速收录seo工具软件
  • 魏公村网站建设/网站建设报价单模板
  • wordpress 搜索 限制/如何提高网站排名seo
  • 南京网络公司网站/外贸公司如何做推广
  • 怎么网站能找人做装修事/免费建立网站
  • 影楼网站模板下载/网站推广的具体方案