4

Is possible to determine when text is selected and when is not?

I was googling and I find onSelectionChanged() method or setOnLongClickListener() for determining when user longClicks the editText so when he made selection, but in both cases it can't help me with determining, when the user is not selecting any text (I could set button invisible)...

3 Answers 3

8

You can use

yourEditText.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (MotionEvent.ACTION_UP == event.getAction()) { if (yourEditText.hasSelection()) { // if true, the text in the EditText is selected } return false; } }); 


That should do it.

Sign up to request clarification or add additional context in comments.

Comments

5
int startSelection=et.getSelectionStart(); int endSelection=et.getSelectionEnd(); 

The getSelectionStart() method will return the start of the selection anchor/cursor or -1 if the user has not selected any text. You could try using this.

2 Comments

How I can test it every time? I should put it inside some loop? sry but i am new to programming for android :D :/
It depends on when you want to check. You can check it when you gain/lose focus, etc.
2

You can check editText.getSelectionStart() and editText.getSelectionEnd() and check if those values are:

  • the same: user did not select text
  • different: the user selected text

So:

int startSelection= textAbove.getSelectionStart(); int endSelection= textAbove.getSelectionEnd(); if (startSelection != endSelection) { ... DO SOMETHING ... } 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.