From 6275b05a62fb7df458f99f053a8c9f38a75ae722 Mon Sep 17 00:00:00 2001 From: jaeger Date: Wed, 14 Sep 2016 11:12:46 +0800 Subject: [PATCH] fix bug --- .../main/java/com/jaeger/library/SelectableTextHelper.java | 6 +++++- sample/src/main/res/layout/activity_main.xml | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/library/src/main/java/com/jaeger/library/SelectableTextHelper.java b/library/src/main/java/com/jaeger/library/SelectableTextHelper.java index 6713e58..8c9ad98 100644 --- a/library/src/main/java/com/jaeger/library/SelectableTextHelper.java +++ b/library/src/main/java/com/jaeger/library/SelectableTextHelper.java @@ -57,6 +57,7 @@ public SelectableTextHelper(TextView textView) { } private void init() { + mTextView.setText(mTextView.getText(), TextView.BufferType.SPANNABLE); mTextView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { @@ -187,6 +188,9 @@ private void show(int x, int y) { if (mTextView.getText() instanceof Spannable) { mSpannable = (Spannable) mTextView.getText(); } + if (mSpannable == null || startOffset >= mTextView.getText().length()) { + return; + } selectText(startOffset, endOffset); showCursor(mStartHandle); showCursor(mEndHandle); @@ -274,7 +278,7 @@ public void onClick(View v) { @Override public void onClick(View v) { hideSelect(); - selectText(0, mTextView.getText().length() - 1); + selectText(0, mTextView.getText().length()); isHide = false; showCursor(mStartHandle); showCursor(mEndHandle); diff --git a/sample/src/main/res/layout/activity_main.xml b/sample/src/main/res/layout/activity_main.xml index 7366116..daebfa0 100644 --- a/sample/src/main/res/layout/activity_main.xml +++ b/sample/src/main/res/layout/activity_main.xml @@ -18,7 +18,7 @@ android:id="@+id/tv_test" android:layout_width="match_parent" android:layout_height="wrap_content" - android:bufferType="spannable" + android:layout_margin="16dp" android:lineSpacingExtra="3dp" android:text="@string/long_text" android:textSize="16sp"/>