zoukankan      html  css  js  c++  java
  • Android中@+id和@id的差别

    Android中的组件须要用一个int类型的值来表示。这个值也就是组件标签中的id属性值。

    id属性仅仅能接受资源类型的值,也就是必须以@开头的值,比如,@id/abc、@+id/xyz等。 
    假设在@后面使用“+”,表示当改动完某个布局文件并保存后,系统会自己主动在R.java文件里生成对应的int类型变量。变量名就是“/”后面的值。比如,@+id/xyz会在R.java文件里生成int xyz = value。当中value是一个十六进制的数。假设xyz在R.java中已经存在同名的变量,就不再生成新的变量。而该组件会使用这个已存在的变量的值。 
    也就是说,假设使用@+id/name形式,当R.java中存在名为name变量时,则该组件会使用该变量的值作为标识。假设不存在该变量。则加入一个新的变量。并为该变量赋对应的值(不会反复)。 
        既然组件的id属性是一个资源id就能够,那么自然能够设置不论什么已经存在的资源id值,比如,@drawable/icon、@string/ok、@+string/you等。当然,也能够设置android系统中已存在的资源id,比如。楼主提出的@id/android:list。那么这个android是什么意思呢,实际上。这个android就是系统的R类(在R.java文件里)所在的package。我们能够在Java代码编辑区输入android.R.id.,就会列出对应的资源id。比如,也能够设置id属性值为@id/android:message。 <ListView android:id="@+id/android:message"    android:layout_width="wrap_content" 
          android:layout_height="wrap_content"/> 
    还有第二种方法查看系统中定义的id,进入<android sdk安装目
    录>platformsandroid-1.5data esvalues文件夹。找到ids.xml文件。打开后,内容例如以下: 
    <?xml version="1.0" encoding="utf-8"?> <resources> 
    <item type="id" name="price_edit">false</item> <item type="id" name="amount_edit">false</item> </resources>  

    若在ids.xml中定义了ID。则在layout中可例如以下定义@id/price_edit,否则@+id/price_edit


    总结一下:

    一、android:id="@android:id/tabhost"   是调用系统内部的ID和代码中

    mTabContent = (FrameLayout) findViewById(com.android.internal.R.id.tabcontent);是一回事。

    二、android:id="@+id/llRoot" 就是自定义一个新的ID。

    三、android:id="@id/llRoot"使用一个已经存在的ID号引用(跟第一个不同,这里引用的不是系统的


  • 相关阅读:
    Asp.NET下生成HTML分析
    Iframe中使用JS事先切换背景颜色、背景图片的效果
    document.execCommand()函数可用参数解析
    【原创】Asp中使用Ajax实现无刷新调用页面。
    windows2003服务器防止海洋木马的安全设置【重要】
    用Asp.net屏蔽F5、Ctrl+N、Alt+F4
    用Wix制作VSPackage的安装包
    .NET应用程序调试总结系列视频(二):VS Debugger Basics
    .NET应用程序调试总结系列视频(一):总体思路
    为MyEclipse安装google app engine插件
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/6915690.html
Copyright © 2011-2022 走看看