刚开始使用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意味着什么?
请你解释一下,向我展示一些资源,在哪里可以找到所有这些魔法属性,这样我可以自己下次自己应对,希望有一天能回答其他新手问题
非常感谢,所有评论都将受到赞赏。
答案 0 :(得分:0)
好吧,阅读文档一直对我有帮助:
@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
)将被转换为对象层次结构。