Автоматическая генерация 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();
Это будет так полезно, потому что у меня есть привычка регистрировать мои классы.
Ответы
Ответ 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]()