stackoverflow.com/questions/5240287/...

ом из представлений в приложении упражнений я пытаюсь выполнить выделение текста программно.

Я могу (программно) войти в «режим выделения текста», который визуально обозначен CursorControllers (ручки AKA) в верхнем левом углу представления.

Если явручную перетащите курсор CursorController вправо, затем щелкните его снова (в эмуляторе), он работает как положено (идеально), показывая короткое сообщение: «Текст скопирован в буфер обмена».

Но когда я пытаюсь программно перетащить этот правый CursorController, ничего не происходит.

Я пытаюсь это сделать, имитируя MotionEvent. По мнению, я звоню:

  event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, x, y, 0);
  MainActivity.onTouch(this, event);

В MainActivity я, конечно, реализую OnTouchListener:

@Override
public boolean onTouch(View v, MotionEvent event) { // called BEFORE button's onTouchEvent()
    Log.v("MainActivity::onTouch()", describeEvent(v, event));
    switch (event.getAction()) { 
        case MotionEvent.ACTION_DOWN: 
        case MotionEvent.ACTION_UP: 
            if (!v.hasFocus()) { 
                v.requestFocus(); 
             } 
             break; 
    } 
    return false; 
}

Если я правильно понимаю, просто возвращая «ложь» из onTouch,Android продолжает искать другой объект пользовательского интерфейса для использования объекта MotionEvent, в конечном итоге достигнув моего взгляда.

Почему этого не происходит?

Я должен упустить что-то очень фундаментальное ...

Ответы на вопрос(2)

Ваш ответ на вопрос