Mar*_*usz 9 android android-resources
我想在运行时获取引用资源的 ID。例如这是我的代码:
<string name="d2c_entryroadblock_start_value" translatable="false">@string/get_started</string>
Run Code Online (Sandbox Code Playgroud)
我对R.string.get_started只有R.string.d2c_entryroadblock_start_value在运行时引用的 ID 感兴趣。
您还可以在下面的 APK 分析器中查看它的外观 - 我需要了解它 @ref/0x7f1302fc
你可以得到与Resources#getValue()方法,传递false的resolveRefs参数。例如:
TypedValue value = new TypedValue();
getResources().getValue(R.string.alias_name, value, false);
int aliasedId = value.data;
Run Code Online (Sandbox Code Playgroud)
如图所示,别名资源的数字 ID 将在TypedValue'sdata字段中。如果你真的需要它的十六进制,你可以将它传递给Integer.toHexString(). 而且,如果您需要别名资源名称,那么它很简单:
String aliasedName = getResources().getResourceEntryName(value.data);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |