![](/img/trans.png)
[英]Android studio: How to auto-generate views variables from xml to java class?
[英]Auto-generate Android Log TAG in Android Studio/Intellij idea
在 Intellij Idea 中,當我輸入psfs
然后按Ctrl+J 時, IDE 給我一個對話框:
當我按Enter 時,我得到一個
我知道在哪里可以自定義我自己的輸出
但我無法了解如何編寫自己的實時模板。
最后我想得到下一個結果:
psfst
-> 按Ctrl+J -> 按Enter public static final String TAG = <currentClassName>.class.getSimpleName();
這會很有幫助,因為我有記錄課程的習慣。
我找到了解決辦法
1)在普通組中創建一個新的實時模板
2)在模板文本中:
private static final String TAG = $CLASS_NAME$.class.getSimpleName();
3)定義使用范圍:
4)選擇快捷方式:
最后點擊編輯變量並將表達式值更改為 className()
單擊“確定” 、“應用” 、“確定”並使用。
對於使用Android Studio 3和Kotlin 的用戶,有必要更改Live Templates 的設置方式:
編輯器 >> 實時模板 >> AndroidLog
默認情況下,它僅適用於 Java
添加 Kotlin 按“更改”按鈕並檢查 Kotlin
之后它會再次工作!
更新時間: 2020
安卓工作室: 3.6.2
腳步:
private val TAG = this::class.java.simpleName
2020 年 6 月更新
沒有必要再設置任何東西了。 默認情況下,Android Studio 4.0 帶有此功能。 吐司也是一樣
在 Android Studio 中非常簡單,只需輸入logt
並按Tab 即可。
它生成: private static final String TAG = "xyzActivity";
另一種解決方案是不對每個類使用默認 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
對於 Kotlin,創建一個實時模板,使用private val TAG = $CLASS_NAME$::class.java.simpleName
作為模板文本,並在 CLASS_NAME 的 set 表達式中作為 kotlinClassName() 在編輯變量中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.