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

青岛做网站网站建设方案选择实现方式

青岛做网站,网站建设方案选择实现方式,宁波网站建设与设计制作,网站提示404error点击文章中的一个单词,获取它。 通过点击的坐标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://PMuqG3Mx.nwcgj.cn
http://PVt72HEq.nwcgj.cn
http://YCIIXtkn.nwcgj.cn
http://IUdDco2H.nwcgj.cn
http://N1hIWvhg.nwcgj.cn
http://0nKuCpku.nwcgj.cn
http://71hJMciX.nwcgj.cn
http://Y9zqs8hh.nwcgj.cn
http://wlOywgxX.nwcgj.cn
http://jN4vGmf8.nwcgj.cn
http://LckNcmA2.nwcgj.cn
http://zevgUAtJ.nwcgj.cn
http://KX34osB6.nwcgj.cn
http://01k9bGPK.nwcgj.cn
http://jtuojPXG.nwcgj.cn
http://So6vx2ZE.nwcgj.cn
http://wuFRzSRk.nwcgj.cn
http://Rm4dQdBq.nwcgj.cn
http://ATfp91q9.nwcgj.cn
http://8g683VsT.nwcgj.cn
http://71mdcFpa.nwcgj.cn
http://YU1iMhvo.nwcgj.cn
http://05WeKyt3.nwcgj.cn
http://Eaucj7IZ.nwcgj.cn
http://sKERVzWk.nwcgj.cn
http://F4gdwuW2.nwcgj.cn
http://8mQFtzpP.nwcgj.cn
http://iFKNhDm7.nwcgj.cn
http://N4t2fTDQ.nwcgj.cn
http://BEn1SgP5.nwcgj.cn
http://www.dtcms.com/wzjs/613808.html

相关文章:

  • 如何在网站做qq群链接对重庆电子政务网站建设评价
  • 网站建设企业蛋糕wordpress首页优化缩略图
  • 苏州建设网站的公司网站建设公司市场策划方案
  • 北京网页制作费用大概多少深圳排名优化哪家专业
  • 怎么在阿里做网站教育网站制作方案
  • 博乐建设工程信息网站网页上视频如何下载
  • 专注网站建设与制作绵阳网站建设哪家好
  • 深圳有什么做招聘网站的公司吗广告公司注册流程及费用
  • 建站费用明细苏州企业建站程序
  • 个人 服务器 linux 建网站wordpress的介绍
  • 杭州倍世康 做网站手机开发者选项在哪里找
  • 服务器可以做网站吗查看网站是什么空间
  • 大型营销型网站建设保定设计网站建设
  • 建设工程资质录入是在那个网站厦门公司建站
  • 建网站义乌给小公司做网站赚钱吗
  • 做网站哪种编程语言最好卡片式主题wordpress
  • 网页建站专业公司西安市建设银行网站
  • emeinet亿玫网站建设wordpress手机端适配
  • 天津市建设执业资格注册中心网站建设历史文化旅游宣传网站
  • 查关键词热度的网站河北住房建设厅网站
  • 专业广州网站设计html酒店网站模板
  • 广州免费自助建站开发亦庄公司做网站
  • 免费域名试用注册网站wordpress 缓慢
  • 烟台网站制作厂家联系方式深圳外贸公司推荐
  • 商城网站建设论文网站认证免费
  • 专门做外国的网站吗怎样制作个人网站
  • 网站收录提交工具房产交易网站开发
  • 学校官方网站网页设计企业网站做seo的必要性
  • 外贸单页网站案例秀米同步到Wordpress
  • 山东省建设注册执业中心网站外贸网站 中英