Подтвердить что ты не робот

Автоматическая генерация Android Log TAG в Android Studio/Intellij

В Intellij Idea, когда я набираю psfs, а затем нажмите Ctrl+J, IDE меня выводит диалог:

enter image description here

И когда я нажимаю Enter, я получаю

enter image description here

Я знаю, где я могу настроить собственный вывод

enter image description here

Но я не могу ни одного документа, как я могу написать свой собственный живой шаблон.

В конце концов, я хочу получить следующий результат:

Ввод: psfst → нажмите Ctrl+J → нажмите Enter

Результат:

public static final String TAG = <currentClassName>.class.getSimpleName();

Это будет так полезно, потому что у меня есть привычка регистрировать мои классы.

4b9b3361

Ответ 1

Я нахожу решение

1) Создайте новый живой шаблон в простой группе
2) В тексте шаблона:

private static final String TAG = $CLASS_NAME$.class.getSimpleName();

3) Определите область использования:

enter image description here

4) Выберите ярлык:

enter image description here

наконец нажмите Edit variables и измените значение выражения на className()

enter image description here

Нажмите Ok, Apply, Ok и используйте.

Ответ 2

В Android Studio уже существует такой ярлык - напишите logt и введите, пока курсор находится в области класса.

здесь:

подробнее см. здесь

Ответ 3

Другое решение не использует TAG по умолчанию для каждого класса и использует этот метод для получения TAG:

public class Utils {
        public static String getTAG(Object o) {
            StackTraceElement[] elements = Thread.currentThread().getStackTrace();

            int position = 0;
            for (int i = 0; i < elements.length; i++) {
                if (elements[i].getFileName().contains(o.getClass().getSimpleName())
                        && !elements[i+1].getFileName().contains(o.getClass().getSimpleName())){
                    position = i;
                    break;
                }
            }

            StackTraceElement element = elements[position];
            String className = element.getFileName().replace(".java", "");
            return "[" + className + "](" + element.getMethodName() + ":" + element.getLineNumber() + ")";
        }
}

Пример вызова из MainActivity - onResume:

Log.v(Utils.getTAG(this), "hello world");

Выход журнала:

[MainActivity](onResume:79): hello world

Ответ 4

Для тех, кто использует Android Studio 3 и Kotlin, необходимо изменить настройки Live Templates:

Редактор >> Живые шаблоны >> AndroidLog

По умолчанию это только для Java

enter image description here

Добавьте Kotlin нажатием кнопки "изменить" и проверьте Kotlin

enter image description here

и после этого он снова будет работать!

enter image description here