因为我知道以下事情。在Android中将资源ID分配给布局
资源ID是一个32位的数字形式:PPTTNNNN。 PP是该资源用于的包 ; TT是资源的类型; NNNN是 该类型中的资源的名称。对于应用程序资源,PP 总是0x7f。
例子:
通过AAPT顺序处理这些资源文件:
layout/main.xml
drawable/icon.xml
layout/listitem.xml
首先我们看到的类型是layout
从而给出TT == 1
。该类型下的第一个名称是“主”,因此给出NNNN == 1
。最终的资源ID是0x7f010001
。
接下来我们看到drawable
,因此给出TT == 2
。该类型的第一个名称是“图标”,以便获得NNNN == 1
。最终的资源ID是0x7f020001
。
最后我们看到另一个layout
其中TT == 1
像以前一样。这有一个新名称listitem
,以便获得下一个值NNNN == 2
。最终的资源ID是0x7f010002
。
问:
但最近我看到一些布局文件都是由下面的方法分配ID。
Java代码
this.f5160k = (ImageView) findViewById(2131755224);
this.f5163n = findViewById(2131755219);
this.f5162m = (LinearLayout) findViewById(2131755223);
this.f5161l = (LinearLayout) findViewById(2131755220);
this.f5158i = (GridView) findViewById(2131755222);
由于第一部分this.f5160k
是Declartion,因为我知道,但是这是什么格式2131755224
。任何人都可以给我建议或知识。 ?
这个'2131755224'是手动生成的,或者我们使得像'public.xml'文件。 – Ironman
由于该值是硬编码的,因此您必须使用public.xml。这样,价值不会改变。 R.java自动生成,ID不断变化(并且不可能让它们在源代码中进行硬编码)。因此,在public.xml中,您可以以六进制格式定义ID,并在java文件中使用十六进制或十进制格式。由于它们是不同的表示形式,但数字相同(在这种情况下是相同的ID),因此没有区别。 – W0rmH0le