android @id和@+id的问题

查看:73
本文介绍了android @id和@+id的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我了解到:

@+id 新增一个资源id @id和android:id,引用现有的资源id

但是有时候我看到有的程序里,全局搜索只能搜索到@id/xxx,从没看到过@id/xxx的定义,那么这个id是怎么在R.java中生成的呢?是系统内置的关键字?
另外,我看到有的同一个程序中不同的组件使用了同一个id,比如下图,NavigationView和ImageView都使用了android:id="@id/navigation_view",为什么?

解决方案

正如你所了解的,当我们在xml中为某个控件定义id时使用@+id/xxx 在R.java中如果不存在就会生成相应的xxx变量名值为int型,存在就会使用原来的int值,所以每一个xxx都有一个唯一的标识。
然而当我们在资源文件中定义ids.xml文件,在其中可以自定义id类型的变量名形如:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item name="cc" type="id">213</item>
</resources>

于是我们可以在布局文件中如下引用:

<Button
    android:id="@id/cc"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
    

至于你说的引用相同的@id/xxx 也是于与@+id/xxx 相同的道理。

这篇关于android @id和@+id的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆