android.text.Selection#removeSelection ( )源码实例Demo

下面列出了android.text.Selection#removeSelection ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: TelePlus-Android   文件: AndroidUtilities.java
@Override
public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event)
{
    try
    {
        boolean result = super.onTouchEvent(widget, buffer, event);
        if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL)
        {
            Selection.removeSelection(buffer);
        }
        return result;
    }
    catch (Exception e)
    {
        FileLog.e(e);
    }
    return false;
}
 
源代码2 项目: TelePlus-Android   文件: ChangeUsernameActivity.java
@Override
public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event)
{
    try
    {
        boolean result = super.onTouchEvent(widget, buffer, event);
        if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL)
        {
            Selection.removeSelection(buffer);
        }
        return result;
    }
    catch (Exception e)
    {
        FileLog.e(e);
    }
    return false;
}
 
源代码3 项目: iBeebo   文件: LongClickableLinkMovementMethod.java
@Override
public void onTakeFocus(@NonNull TextView view, Spannable text, int dir) {
    Selection.removeSelection(text);

    if ((dir & View.FOCUS_BACKWARD) != 0) {
        text.setSpan(FROM_BELOW, 0, 0, Spannable.SPAN_POINT_POINT);
    } else {
        text.removeSpan(FROM_BELOW);
    }
}
 
源代码4 项目: SkyTube   文件: TouchableMovementMethod.java
private void handleActionUp(Spannable spannable) {
    if (pressedSpan != null) {
        listener.onClick(pressedSpan, false);
        touchedSpans.remove(pressedSpan);
        pressedSpan = null;

        Selection.removeSelection(spannable);
    }
}
 
源代码5 项目: Telegram   文件: StickersAlert.java
@Override
public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event) {
    try {
        boolean result = super.onTouchEvent(widget, buffer, event);
        if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) {
            Selection.removeSelection(buffer);
        }
        return result;
    } catch (Exception e) {
        FileLog.e(e);
    }
    return false;
}
 
private void highlightUrl(TextView textView, BetterLinkMovementExtended.ClickableSpanWithText spanWithText, Spannable text) {
    if (!this.isUrlHighlighted) {
        this.isUrlHighlighted = true;
        int spanStart = text.getSpanStart(spanWithText.span());
        int spanEnd = text.getSpanEnd(spanWithText.span());
        Selection.removeSelection(text);
        text.setSpan(new BackgroundColorSpan(textView.getHighlightColor()), spanStart, spanEnd, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
        textView.setText(text);
        Selection.setSelection(text, spanStart, spanEnd);
    }
}
 
源代码7 项目: Telegram-FOSS   文件: ThemeSetUrlActivity.java
@Override
public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event) {
    try {
        boolean result = super.onTouchEvent(widget, buffer, event);
        if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) {
            Selection.removeSelection(buffer);
        }
        return result;
    } catch (Exception e) {
        FileLog.e(e);
    }
    return false;
}
 
源代码8 项目: Telegram   文件: ThemeSetUrlActivity.java
@Override
public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event) {
    try {
        boolean result = super.onTouchEvent(widget, buffer, event);
        if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) {
            Selection.removeSelection(buffer);
        }
        return result;
    } catch (Exception e) {
        FileLog.e(e);
    }
    return false;
}
 
源代码9 项目: Telegram-FOSS   文件: StickersAlert.java
@Override
public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event) {
    try {
        boolean result = super.onTouchEvent(widget, buffer, event);
        if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) {
            Selection.removeSelection(buffer);
        }
        return result;
    } catch (Exception e) {
        FileLog.e(e);
    }
    return false;
}
 
源代码10 项目: imsdk-android   文件: LinkMovementClickMethod.java
@Override
public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event) {
    int action = event.getAction();

    if (action == MotionEvent.ACTION_UP ||
            action == MotionEvent.ACTION_DOWN) {
        int x = (int) event.getX();
        int y = (int) event.getY();

        x -= widget.getTotalPaddingLeft();
        y -= widget.getTotalPaddingTop();

        x += widget.getScrollX();
        y += widget.getScrollY();

        Layout layout = widget.getLayout();
        int line = layout.getLineForVertical(y);
        int off = layout.getOffsetForHorizontal(line, x);

        ClickableSpan[] link = buffer.getSpans(off, off, ClickableSpan.class);

        if (link.length != 0) {
            if (action == MotionEvent.ACTION_UP) {
                if(System.currentTimeMillis() - lastClickTime < CLICK_DELAY){
                    link[0].onClick(widget);
                }
            } else if (action == MotionEvent.ACTION_DOWN) {
                Selection.setSelection(buffer,
                        buffer.getSpanStart(link[0]),
                        buffer.getSpanEnd(link[0]));
                lastClickTime = System.currentTimeMillis();
            }

            return true;
        } else {
            Selection.removeSelection(buffer);
        }
    }
    return super.onTouchEvent(widget, buffer, event);
}
 
源代码11 项目: Telegram-FOSS   文件: ChangeUsernameActivity.java
@Override
public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event) {
    try {
        boolean result = super.onTouchEvent(widget, buffer, event);
        if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) {
            Selection.removeSelection(buffer);
        }
        return result;
    } catch (Exception e) {
        FileLog.e(e);
    }
    return false;
}
 
@Override
public void onItemLongClick(final View view, int position, final RealTimeLocationStartMessage content, final UIMessage message) {
    ViewHolder holder = (ViewHolder) view.getTag();
    holder.longClick = true;
    if (view instanceof TextView) {
        CharSequence text = ((TextView) view).getText();
        if (text != null && text instanceof Spannable)
            Selection.removeSelection((Spannable) text);
    }

    String name = null;

    if (message.getSenderUserId() != null) {
        UserInfo userInfo = RongUserInfoManager.getInstance().getUserInfo(message.getSenderUserId());
        if (userInfo != null)
            name = userInfo.getName();
    }
    String[] items;

    Resources res = view.getContext().getResources();
    items = new String[]{res.getString(R.string.rc_dialog_item_message_delete)};

    ArraysDialogFragment.newInstance(name, items).setArraysDialogItemListener(new ArraysDialogFragment.OnArraysDialogItemListener() {
        @Override
        public void OnArraysDialogItemClick(DialogInterface dialog, int which) {
            if (which == 0) {
                RongIM.getInstance().getRongIMClient().deleteMessages(new int[]{message.getMessageId()}, null);
            }

        }
    }).show(((FragmentActivity) view.getContext()).getSupportFragmentManager());
}
 
@Override
public boolean onTouchEvent(TextView textView, Spannable spannable, MotionEvent event) {
    boolean handled = false;
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
        pressedSpan = getPressedSpan(textView, spannable, event);
        if (pressedSpan != null) {
            pressedSpan.setPressed(true);
            Selection.setSelection(spannable, spannable.getSpanStart(pressedSpan),
                    spannable.getSpanEnd(pressedSpan));
            handled = true;
        }
    } else if (event.getAction() == MotionEvent.ACTION_MOVE) {
        TouchableUrlSpan touchedSpan = getPressedSpan(textView, spannable, event);
        if (pressedSpan != null && touchedSpan != pressedSpan) {
            pressedSpan.setPressed(false);
            pressedSpan = null;
            Selection.removeSelection(spannable);
        }
    } else {
        if (pressedSpan != null) {
            pressedSpan.setPressed(false);
            super.onTouchEvent(textView, spannable, event);
            handled = true;
        }
        pressedSpan = null;
        Selection.removeSelection(spannable);
    }
    return handled;
}
 
源代码14 项目: RefreashTabView   文件: LinkMovement.java
@Override
public boolean onTouch(View v, MotionEvent event) {
    if (!(v instanceof TextView)) {
        return false;
    }
    TextView widget = (TextView) v;

    //widget.getText() is SpannedString
    Spannable buffer = Spannable.Factory.getInstance().newSpannable(widget.getText());

    int action = event.getAction();
    if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_DOWN) {
        int x = (int) event.getX();
        int y = (int) event.getY();

        x -= widget.getTotalPaddingLeft();
        y -= widget.getTotalPaddingTop();

        x += widget.getScrollX();
        y += widget.getScrollY();

        Layout layout = widget.getLayout();
        int line = layout.getLineForVertical(y);
        int off = layout.getOffsetForHorizontal(line, x);

        ClickableSpan[] links = buffer.getSpans(off, off, ClickableSpan.class);

        if (links.length != 0) {
            if (action == MotionEvent.ACTION_UP) {
                removeLongClick(v);
                links[0].onClick(widget);
            } else if (action == MotionEvent.ACTION_DOWN) {
                Selection.setSelection(buffer, buffer.getSpanStart(links[0]), buffer.getSpanEnd(links[0]));
                checkForLongClick(v, 0);

            }
            return true;
        } else {
            Selection.removeSelection(buffer);
        }
    } else if (action == MotionEvent.ACTION_CANCEL) {
        removeLongClick(v);
    }

    return false;
}
 
源代码15 项目: xifan   文件: ClickLinkMovementMethod.java
@Override
public void initialize(TextView widget, Spannable text) {
    Selection.removeSelection(text);
}
 
@Override
public void initialize(TextView widget, Spannable text) {
    Selection.removeSelection(text);
}
 
源代码17 项目: BigApp_Discuz_Android   文件: WeiboTextView.java
@Override
        public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event) {
            int action = event.getAction();

//            LogUtils.printLog(WeiboTextView.class, "MotionEvent:" + action);

//            if (action == MotionEvent.ACTION_MOVE) {
//                isPressed = false;
//            }
            switch (action) {
                case MotionEvent.ACTION_DOWN:
                    break;
                case MotionEvent.ACTION_UP:
                    break;

                case MotionEvent.ACTION_CANCEL:
                    buffer.setSpan(new BackgroundColorSpan(0x00000000), 0, weiboTextView.length(),
                            Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                    Selection.setSelection(buffer, 0, weiboTextView.length());
                    break;
            }


            if (action == MotionEvent.ACTION_UP ||
                    action == MotionEvent.ACTION_DOWN) {
                int x = (int) event.getX();
                int y = (int) event.getY();

                x -= widget.getTotalPaddingLeft();
                y -= widget.getTotalPaddingTop();

                x += widget.getScrollX();
                y += widget.getScrollY();

                Layout layout = widget.getLayout();
                int line = layout.getLineForVertical(y);
                int off = layout.getOffsetForHorizontal(line, x);

                ClickableSpan[] link = buffer.getSpans(off, off, ClickableSpan.class);

                if (link.length != 0) {

                    int start = buffer.getSpanStart(link[0]);
                    int end = buffer.getSpanEnd(link[0]);

//                    LogUtils.printLog(WebViewUtils.class, "start:" + start + " end:" + end);

                    if (action == MotionEvent.ACTION_UP) {
                        link[0].onClick(widget);
                        buffer.setSpan(new BackgroundColorSpan(0x00000000), start, end,
                                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                        Selection.setSelection(buffer, start, end);
                    } else if (action == MotionEvent.ACTION_DOWN) {
                        buffer.setSpan(new BackgroundColorSpan(weiboTextView.clickBgClolr), start, end,
                                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                        Selection.setSelection(buffer, start, end);
                    }

                    if (widget instanceof WeiboTextView) {
                        ((WeiboTextView) widget).linkHit = true;
                    }
                    return true;
                } else {
                    Selection.removeSelection(buffer);
                    Touch.onTouchEvent(widget, buffer, event);
                    return false;
                }
            }


            return Touch.onTouchEvent(widget, buffer, event);
        }
 
@Override
public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event) {
    int action = event.getAction();

    if (action == MotionEvent.ACTION_UP ||
            action == MotionEvent.ACTION_DOWN) {
        int x = (int) event.getX();
        int y = (int) event.getY();

        x -= widget.getTotalPaddingLeft();
        y -= widget.getTotalPaddingTop();

        x += widget.getScrollX();
        y += widget.getScrollY();

        Layout layout = widget.getLayout();
        int line = layout.getLineForVertical(y);
        int off = layout.getOffsetForHorizontal(line, x);

        ClickableSpan[] link = buffer.getSpans(off, off, ClickableSpan.class);

        if (link.length != 0) {
            if (action == MotionEvent.ACTION_UP) {
                link[0].onClick(widget);
            } else if (action == MotionEvent.ACTION_DOWN) {
                Selection.setSelection(buffer,
                        buffer.getSpanStart(link[0]),
                        buffer.getSpanEnd(link[0]));
            }

            if (widget instanceof TextViewFixTouchConsume) {
                ((TextViewFixTouchConsume) widget).mlinkHit = true;
            }
            return true;
        } else {
            Selection.removeSelection(buffer);
            Touch.onTouchEvent(widget, buffer, event);
            return false;
        }
    }
    return Touch.onTouchEvent(widget, buffer, event);
}
 
源代码19 项目: Markdown   文件: LongPressLinkMovementMethod.java
@Override
public boolean onTouchEvent(TextView widget, Spannable buffer,
                            MotionEvent event) {
    int action = event.getAction();

    if (action == MotionEvent.ACTION_UP
            || action == MotionEvent.ACTION_DOWN
            || action == MotionEvent.ACTION_MOVE
            || action == MotionEvent.ACTION_CANCEL) {
        int x = (int) event.getX();
        int y = (int) event.getY();

        x -= widget.getTotalPaddingLeft();
        y -= widget.getTotalPaddingTop();

        x += widget.getScrollX();
        y += widget.getScrollY();

        Layout layout = widget.getLayout();
        int line = layout.getLineForVertical(y);
        int off = layout.getOffsetForHorizontal(line, x);

        ClickableSpan[] clickableLinks = buffer.getSpans(off, off, ClickableSpan.class);
        LongPressClickableSpan[] longPressClickableLinks = buffer.getSpans(off, off, LongPressClickableSpan.class);

        switch (action) {
            case MotionEvent.ACTION_UP:
                if (clickableLinks.length != 0) {
                    if (!mIsLongPressed) {
                        clickableLinks[0].onClick(widget);
                    }

                    mIsLongPressed = false;
                    mHandler.removeMessages(LONG_PRESS);
                }

                return true;

            case MotionEvent.ACTION_DOWN:
                if (clickableLinks.length != 0) {
                    if (longPressClickableLinks.length == 0) {
                        Selection.setSelection(buffer,
                                buffer.getSpanStart(clickableLinks[0]),
                                buffer.getSpanEnd(clickableLinks[0]));
                    } else {
                        mX = (int) event.getX();
                        mY = (int) event.getY();

                        mHandler.removeMessages(LONG_PRESS);
                        mHandler.sendMessageAtTime(Message.obtain(mHandler, LONG_PRESS, new Object[]{longPressClickableLinks[0], widget}),
                                event.getDownTime() + ViewConfiguration.getLongPressTimeout());
                    }
                }

                return true;

            case MotionEvent.ACTION_MOVE:
                if (Math.abs(event.getX() - mX) > 50
                        && Math.abs(event.getX() - mY) > 50) {
                    mHandler.removeMessages(LONG_PRESS);
                }

                return super.onTouchEvent(widget, buffer, event);

            case MotionEvent.ACTION_CANCEL:
                mHandler.removeMessages(LONG_PRESS);
                return super.onTouchEvent(widget, buffer, event);
        }

        if (clickableLinks.length == 0) {
            Selection.removeSelection(buffer);
        }
    }

    return super.onTouchEvent(widget, buffer, event);
}
 
源代码20 项目: Slide   文件: TextViewLinkHandler.java
@Override
public boolean onTouchEvent(TextView widget, final Spannable buffer, MotionEvent event) {
    comm = (SpoilerRobotoTextView) widget;

    int x = (int) event.getX();
    int y = (int) event.getY();
    x -= widget.getTotalPaddingLeft();
    y -= widget.getTotalPaddingTop();
    x += widget.getScrollX();
    y += widget.getScrollY();

    Layout layout = widget.getLayout();
    int line = layout.getLineForVertical(y);
    int off = layout.getOffsetForHorizontal(line, x);

    link = buffer.getSpans(off, off, URLSpan.class);
    if (link.length > 0) {
        comm.setLongClickable(false);

        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            position = event.getY(); //used to see if the user scrolled or not
        }
        if (!(event.getAction() == MotionEvent.ACTION_UP
                || event.getAction() == MotionEvent.ACTION_DOWN)) {
            if (Math.abs((position - event.getY())) > 25) {
                handler.removeCallbacksAndMessages(null);
            }
            return super.onTouchEvent(widget, buffer, event);
        }

        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                clickHandled = false;
                this.event = event;
                if (SettingValues.peek) {
                    handler.postDelayed(longClicked,
                            android.view.ViewConfiguration.getTapTimeout() + 50);
                } else {
                    handler.postDelayed(longClicked,
                            android.view.ViewConfiguration.getLongPressTimeout());
                }

                break;
            case MotionEvent.ACTION_UP:
                comm.setLongClickable(true);
                handler.removeCallbacksAndMessages(null);

                if (!clickHandled) {
                    // regular click
                    if (link.length != 0) {
                        int i = 0;
                        if (sequence != null) {
                            i = sequence.getSpanEnd(link[0]);
                        }
                        if (!link[0].getURL().isEmpty()) {
                            clickableText.onLinkClick(link[0].getURL(), i, subreddit, link[0]);
                        }
                    } else {
                        return false;
                    }
                }
                break;
        }
        return true;

    } else {
        Selection.removeSelection(buffer);
        return false;
    }
}