【问题标题】:CheckedTextView Attributes ID and checkMarkCheckedTextView 属性 ID 和 checkMark
【发布时间】:2012-05-02 13:05:11
【问题描述】:

刚开始使用 android 开发,并认为网络研讨会可能会更好,而不是看书,因为网络研讨会还可以教我一些捷径,以及 android 开发人员在编写代码但现在遇到问题时的想法

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

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

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

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

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

【问题讨论】:

    标签: android checkedtextview checkmark


    【解决方案1】:

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

    Android Developer Site

    XML Layout specific docs

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

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

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

    【讨论】:

      【解决方案2】:

      @android:id/text1 基本上是在您创建任何 android 组件(如按钮、布局、文本视图等)时使用的。

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-20
        相关资源
        最近更新 更多