Question: I am looking at the Honeycomb Gallery sample code ([here](http://developer.android.com/resources/samples/HoneycombGallery/index.html)) and I ran across the following code while trying to add action items in my own app:

```
<item android:id="@+id/camera"
    android:title="Camera"
    android:icon="?attr/menuIconCamera"
    android:showAsAction="ifRoom" />

```

The `?attr` is throwing me for a loop. Can someone please explain what this is doing? How is this related to a drawable? I can't seem to find any good information on Google. Also is there a listing or gallery of attributes we can use for icons instead of just `menuIconCamera`?

Thanks

Edit:
I did some more looking around and found that attrs.xml looks like this:

```
<resources>
<declare-styleable name="AppTheme">
    <attr name="listDragShadowBackground" format="reference" />
    <attr name="menuIconCamera" format="reference" />
    <attr name="menuIconToggle" format="reference" />
    <attr name="menuIconShare" format="reference" />
</declare-styleable>

```

Unfortunately that just makes it even more confusing for me. What is this doing?

Answer: 
The `?attr/menuIconCamera` value means that an icon from `menuIconCamera` attribute of the current theme will be used.

There must be a drawable assigned to the `menuIconCamera` attribute somewhere in the `themes.xml` file. If there're two themes with different values of this attribute then actual icon will depend on a theme which is currently used.

The `attrs.xml` file is used to define custom attributes. Without this definition compiler will treat unknown attributes as erroneous.
My English is not good, sorry. But I know this question

`android:icon="?attr/menuIconCamera"` want use 

attrs.xml

```
<resources>
    <declare-styleable name="AppTheme">
        <attr name="listDragShadowBackground" format="reference" />
        <attr name="menuIconCamera" format="reference" />
        <attr name="menuIconToggle" format="reference" />
        <attr name="menuIconShare" format="reference" />
    </declare-styleable>
</resources>

```

styles.xml

```
<style name="AppTheme.Light" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/ActionBar.Light</item>
        <item name="android:windowActionBarOverlay">true</item>
        <item name="listDragShadowBackground">@android:color/background_light</item>
        <item name="menuIconCamera">@drawable/ic_menu_camera_holo_light</item> //this....
        <item name="menuIconToggle">@drawable/ic_menu_toggle_holo_light</item>
        <item name="menuIconShare">@drawable/ic_menu_share_holo_light</item>
    </style>

```

use `@drawable/ic_menu_camera_holo_light`