提问:

android sdk doc中提到了关于xml引用资源是如下格式:
@[<package_name>:]<resource_type>/<resource_name>

但是,在源码中也发现了如下的引用方式:
@*android:style/Theme.Dialog.Alert
\packages\apps\Settings\AndroidManifest.xml
非常奇怪的是包名前面的那个“*”是有何作用!不可能是写错吧!搜了一下还挺多地方android包名前都添加了一个“*”符号!

答案:

Theme.Dialog.Alert
因为Alert是非public的。
使用*号的话与@的区别在于可以调用<sdk_path>\platforms\android-8\data\res\values\themes.xml中所有的已定义的theme.
而不使用*只能调用在<sdk_path>\platforms\android-8\data\res\values\public.xml中声明的样式或主题。
从某种意义上来说,没在public.xml中声明的资源是google不推荐使用的。


更多相关文章

  1. Android与JavaScript方法相互调用!
  2. Android(安卓)控件使用之SlidingDrawer
  3. Android源码阅读分析:Activity生命周期
  4. Android与H5的交互
  5. Android的布局和Intent笔记和常用实例
  6. Android旋转屏幕时阻止activity重建
  7. aidl
  8. AsyncTask源码剖析(API 23)
  9. 对Android(安卓)Activity添加容错处理

随机推荐

  1. Android(安卓)Launcher 分析
  2. 【安卓开发】UI设计基础4:用网格布局 Grid
  3. MIUI 音乐播放器[Android] | 小众软件 >
  4. Android的内存机制
  5. 深入源码解析Android中的Handler,Message
  6. Android(安卓)Studio 单刷《第一行代码》
  7. Android面试系列文章2018之Android部分事
  8. Android安全机制(2) Android(安卓)Permissi
  9. Android(安卓)匿名共享内存Java接口分析
  10. 目前Android最全面、最易懂的Android屏幕