2

我的应用程序中有一些小菜单,我想使用 Android 的图标。例如,使用代码,工作正常:

<item
    android:id="@+id/mnuMainHelp"
    android:icon="@android:drawable/android:ic_menu_help"
    android:title="@string/menu_main_help">
</item>

但是如果我输入下一个代码,应用程序将无法编译:

<item
    android:id="@+id/mnuMainUpdateDB"
    android:icon="@android:drawable/android:ic_menu_refresh"
    android:title="@string/menu_main_update_db">
</item>

错误信息是:

... \res\menu\main_menu.xml:4:错误:错误:资源不公开。(在“图标”处,值为“@android:drawable/android:ic_menu_refresh”)。

我哪里错了?

4

2 回答 2

3

尝试 android:icon="@android:drawable/ic_menu_refresh" - 除非,这不起作用。请参阅下面的编辑。

编辑:显然有些drawables不公开,请参阅Android drawable ic_menu_star not working?

您可以在 Android 源或http://androiddrawables.com/中获取实际资源的副本

于 2013-09-13T17:02:28.390 回答
2

您没有将该资源作为公共资源,这就是您收到该错误错误的原因:资源不公开

http://developer.android.com/reference/android/R.drawable.html

这是菜单可绘制对象。

int ic_menu_add 
int ic_menu_agenda  
int ic_menu_always_landscape_portrait   
int ic_menu_call    
int ic_menu_camera  
int ic_menu_close_clear_cancel  
int ic_menu_compass 
int ic_menu_crop    
int ic_menu_day 
int ic_menu_delete  
int ic_menu_directions  
int ic_menu_edit    
int ic_menu_gallery 
int ic_menu_help  // you have this  
int ic_menu_info_details    
int ic_menu_manage  
int ic_menu_mapmode 
int ic_menu_month   
int ic_menu_more    
int ic_menu_my_calendar 
int ic_menu_mylocation  
int ic_menu_myplaces    
int ic_menu_preferences 
int ic_menu_recent_history  
int ic_menu_report_image    
int ic_menu_revert  
int ic_menu_rotate  
int ic_menu_save    
int ic_menu_search  
int ic_menu_send    
int ic_menu_set_as  
int ic_menu_share   
int ic_menu_slideshow   
int ic_menu_sort_alphabetically 
int ic_menu_sort_by_size    
int ic_menu_today   
int ic_menu_upload  
int ic_menu_upload_you_tube 
int ic_menu_view    
int ic_menu_week    
int ic_menu_zoom    

但是按照这个

http://androiddrawables.com/Menu.html你有ic_menu_refresh,它可能不公开。

使用发布的第一个链接中的那个

编辑:

还要检查这个链接

http://developer.android.com/reference/android/package-summary.html

从上面的链接引用

您不应该使用 android 包中的可绘制资源,因为它们可能会在平台版本之间发生变化,从而导致与您的设计发生不可预见的冲突。通常,样式是您应该直接从这些资源中使用的唯一资源。

于 2013-09-13T17:05:22.870 回答