Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何确定何时选择文本[Android[EditText]]_Java_Android_Android Edittext_Textselection - Fatal编程技术网

Java 如何确定何时选择文本[Android[EditText]]

Java 如何确定何时选择文本[Android[EditText]],java,android,android-edittext,textselection,Java,Android,Android Edittext,Textselection,是否可以确定何时选择文本,何时不选择文本 我在谷歌上搜索,我用find on selection changed()方法或setonlongclicklister()来确定用户何时longClicks编辑文本,所以当他做出选择时,这两种方法都不能帮助我确定用户何时没有选择任何文本(我可以将按钮设置为不可见) getSelectionStart()方法将返回选择锚点/光标的开始,如果用户没有选择任何文本,则返回-1。你可以试试这个 getSelectionStart()方法将返回选择锚点/光标的开

是否可以确定何时选择文本,何时不选择文本

我在谷歌上搜索,我用
find on selection changed()
方法或
setonlongclicklister()
来确定用户何时
longClick
s编辑文本,所以当他做出选择时,这两种方法都不能帮助我确定用户何时没有选择任何文本(我可以将按钮设置为不可见)

getSelectionStart()
方法将返回选择锚点/光标的开始,如果用户没有选择任何文本,则返回-1。你可以试试这个

getSelectionStart()
方法将返回选择锚点/光标的开始,如果用户没有选择任何文本,则返回-1。您可以尝试使用此功能。

您可以使用

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;
          }
        });

应该可以

您可以使用

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;
          }
        });


应该可以

您可以检查editText.getSelectionStart()和editText.getSelectionEnd()并检查这些值是否为:

  • 相同:用户未选择文本
  • 不同:用户选择的文本
因此:


您可以检查editText.getSelectionStart()和editText.getSelectionEnd()并检查这些值是否为:

  • 相同:用户未选择文本
  • 不同:用户选择的文本
因此:


我怎么能每次都测试它?我应该把它放在一个圈里?sry但我对android编程还不熟悉:D:/这取决于您想检查的时间。当你获得/失去焦点时,你可以检查它。我如何每次都测试它?我应该把它放在一个圈里?sry但我对android编程还不熟悉:D:/这取决于您想检查的时间。当你获得/失去焦点时,你可以检查它。
int startSelection= textAbove.getSelectionStart();
int endSelection= textAbove.getSelectionEnd();

if (startSelection != endSelection) {
    ... DO SOMETHING ...
}