CheckedTextView属性ID和checkMark

时间:2012-05-02 13:05:12

标签: android checkedtextview checkmark

刚开始使用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意味着什么?

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

非常感谢,所有评论都将受到赞赏。

2 个答案:

答案 0 :(得分:0)

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

Android Developer Site

XML Layout specific docs

@android:id/text1只是先前已定义id时使用的格式。当你在那里放一个+时,这意味着框架应该创建资源id,如果它还不存在的话。

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

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

答案 1 :(得分:0)

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

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

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

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