Допустим, у меня есть приложение Android, созданное с использованием проекта Android Studio, которое опирается на основной класс Android; android.text.Selection
. Одна из функций, removeSelection
, помечена как причина сбоев. Я подозреваю, что это из-за сторонних клавиатур. Я хотел бы изменить эту функцию, чтобы попытаться обойти проблему, изменив с;
/**
* Remove the selection or cursor, if any, from the text.
*/
public static final void removeSelection(Spannable text) {
text.removeSpan(SELECTION_START, Spanned.SPAN_INTERMEDIATE);
text.removeSpan(SELECTION_END);
removeMemory(text);
}
до *; 1006 *
/**
* Remove the selection or cursor, if any, from the text.
*/
public static final void removeSelection(Spannable text) {
Log.i("Test", "Method replaced.");
setSelection(text, 0, 0);
}
Я могу получить источник для класса; https://android.googlesource.com/platform/frameworks/base.git/+/master/core/java/android/text/Selection.java. Я также знаю, что вы можете изменить путь к классу в Java, чтобы использовать измененную версию класса; https://www.sourceallies.com/2010/02/replacing-and-patching-java-application-and-core-classes/. Сам класс находится в основных android.jar
зависимостях.
Как я могу настроить этот метод, включить его в свой проект и сделать так, чтобы мое приложение предпочло модифицированную версию?