0

刚开始使用 android 开发,并认为网络研讨会可能会更好,而不是读书

<CheckedTextView
android:id="@android:id/text1"
android:checkMark="?android:attr/listChoiseIndicatorMultiple"
</>

到目前为止,我不理解上面的代码,看到很多不同的 id 定义,其中一些是用于资源并以 @resource/name 开头,其中一些 id 定义就像 @+id/name 只是用于为组件,但这次它使用的是 android:id/text1 我不明白为什么它以这种方式使用它

此外,checkMark 的事情让我更加困惑那些 ?android:attr/listChoiseIndicatorMultiple 是什么意思?

你能否解释一下并告诉我一些资源在哪里可以找到所有这些魔法属性,这样我下次可以自己应对,希望有一天能回答其他新手问题

提前非常感谢,所有评论将不胜感激。

4

2 回答 2

0

好吧,阅读文档对我一直很有帮助:

Android 开发者网站

XML 布局特定文档

@android:id/text1只是先前定义了 id 时使用的格式。当您在其中放一个 + 时,这意味着如果资源 ID 不存在,框架应该创建它。

在布局中定义新视图时使用@+id/thisid 是正常的,然后使用@id/thisid 从布局的另一部分引用上述视图(例如,在需要告诉一个小部件的RelativeLayout 中低于另一个)。

ID 前的问号表示您要访问在样式主题中定义的样式属性,而不是对属性进行硬编码。

于 2012-05-02T14:15:45.200 回答
0

@android:id/text1基本上,当您创建任何 android 组件(如按钮、布局、textviews 等)时会使用它。

但是当您需要任何适用于不同平台的外部组件(例如任何颜色、图像等)时,您可以将其声明为@resource/name.

实际上并没有什么不同,只需记住一件事,在@android:id/text1,id中将简单地作为类名工作,将包含其他对象,如 textview、imageview 或任何其他对象。

现在,如果您声明@resource/namethen ,而不是id类名将是资源。实际上,当您在 java 中使用它时,这些(@android:id/text1)将被转换为对象层次结构。

于 2012-05-02T14:23:37.753 回答