android 实现选中一个单词官方源码
来源:互联网 发布:淘宝购物最便宜的软件 编辑:程序博客网 时间:2024/06/05 12:01
安卓实现单击选中一个单词
android 4.2
Editor.java
private boolean selectCurrentWord() { if (!canSelectText()) { return false; } if (hasPasswordTransformationMethod()) { // Always select all on a password field. // Cut/copy menu entries are not available for passwords, but being able to select all // is however useful to delete or paste to replace the entire content. return mTextView.selectAllText(); } int inputType = mTextView.getInputType(); int klass = inputType & InputType.TYPE_MASK_CLASS; int variation = inputType & InputType.TYPE_MASK_VARIATION; // Specific text field types: select the entire text for these if (klass == InputType.TYPE_CLASS_NUMBER || klass == InputType.TYPE_CLASS_PHONE || klass == InputType.TYPE_CLASS_DATETIME || variation == InputType.TYPE_TEXT_VARIATION_URI || variation == InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS || variation == InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS || variation == InputType.TYPE_TEXT_VARIATION_FILTER) { return mTextView.selectAllText(); } long lastTouchOffsets = getLastTouchOffsets(); final int minOffset = TextUtils.unpackRangeStartFromLong(lastTouchOffsets); final int maxOffset = TextUtils.unpackRangeEndFromLong(lastTouchOffsets); // Safety check in case standard touch event handling has been bypassed if (minOffset < 0 || minOffset >= mTextView.getText().length()) return false; if (maxOffset < 0 || maxOffset >= mTextView.getText().length()) return false; int selectionStart, selectionEnd; // If a URLSpan (web address, email, phone...) is found at that position, select it. URLSpan[] urlSpans = ((Spanned) mTextView.getText()). getSpans(minOffset, maxOffset, URLSpan.class); if (urlSpans.length >= 1) { URLSpan urlSpan = urlSpans[0]; selectionStart = ((Spanned) mTextView.getText()).getSpanStart(urlSpan); selectionEnd = ((Spanned) mTextView.getText()).getSpanEnd(urlSpan); } else { final WordIterator wordIterator = getWordIterator(); wordIterator.setCharSequence(mTextView.getText(), minOffset, maxOffset); selectionStart = wordIterator.getBeginning(minOffset); selectionEnd = wordIterator.getEnd(maxOffset); if (selectionStart == BreakIterator.DONE || selectionEnd == BreakIterator.DONE || selectionStart == selectionEnd) { // Possible when the word iterator does not properly handle the text's language long range = getCharRange(minOffset); selectionStart = TextUtils.unpackRangeStartFromLong(range); selectionEnd = TextUtils.unpackRangeEndFromLong(range); } } Selection.setSelection((Spannable) mTextView.getText(), selectionStart, selectionEnd); return selectionEnd > selectionStart; }android 2.3.3
TextView.java
private void selectCurrentWord() { // In case selection mode is started after an orientation change or after a select all, // use the current selection instead of creating one if (hasSelection()) { return; } int minOffset, maxOffset; if (mContextMenuTriggeredByKey) { minOffset = getSelectionStart(); maxOffset = getSelectionEnd(); } else { // hasSelectionController is true since we canSelectText. SelectionModifierCursorController selectionModifierCursorController = (SelectionModifierCursorController) getSelectionController(); minOffset = selectionModifierCursorController.getMinTouchOffset(); maxOffset = selectionModifierCursorController.getMaxTouchOffset(); } int selectionStart, selectionEnd; long wordLimits = getWordLimitsAt(minOffset); if (wordLimits >= 0) { selectionStart = extractRangeStartFromLong(wordLimits); } else { selectionStart = Math.max(minOffset - 5, 0); } wordLimits = getWordLimitsAt(maxOffset); if (wordLimits >= 0) { selectionEnd = extractRangeEndFromLong(wordLimits); } else { selectionEnd = Math.min(maxOffset + 5, mText.length()); } Selection.setSelection((Spannable) mText, selectionStart, selectionEnd); }
- android 实现选中一个单词官方源码
- Android TextView 实现一个单词分两行显示
- PHPstorm 选中一个单词,高亮其它相同的单词
- Android 官方 switch 控件更改选中色
- vim 快速选中并复制粘贴替换一个单词
- vim 快速选中并复制粘贴替换一个单词
- ViewCompat:android官方实现兼容的一个帮助类
- android 4.1 源码 官方下载
- 官方Android源码编译提示
- eclipse选中一个单词,其他相同的单词都会高亮显示的颜色修改
- eclipse选中一个单词,其他相同的单词都会高亮显示的颜色修改
- Android Marshmallow实现文字选中
- android 源码 高亮焦点选中
- Java实现-最后一个单词的长度
- 解读Google官方SwipeRefreshLayout控件源码,带你揭秘Android下拉刷新的实现原理
- 解读Google官方SwipeRefreshLayout控件源码,带你揭秘Android下拉刷新的实现原理
- android官方实现Tab(二)
- 下载、编译官方Android 4.1.2 源码
- Jena API 使用介绍
- 设计模式初探(四)——行为:问题为设计而生
- 黑马程序员-高新技术 1
- Symfony2学习笔记之HTTP Cache
- 分享我做的nginx+keepalived做的主主架构(一)
- android 实现选中一个单词官方源码
- 个人对kobject的一点研究
- Activity中的两种界面设计方式
- 国家气象局提供的天气预报接口
- 分享我做的nginx+keepalived做的主主架构(二)
- jQuery学习(三)---jquery 与 DOM操作
- 2012年末实训—银行项目(完)
- jquery 中ajax的基本使用
- 断开指定数据库连接