一般情況下用不到,使用于特殊情況。
直接貼代碼。
<a href="http://www.devdiv.com/#viewSource">view source</a>
<code>01</code>
<code>public</code> <code>class</code> <code>ReadyDrawable </code><code>extends</code> <code>Activity {</code>
<code>02</code>
<code> </code><code>/** Called when the activity is first created. */</code>
<code>03</code>
<code> </code><code>private</code> <code>Button btn;</code>
<code>04</code>
<code> </code><code>private</code> <code>ImageView iv;</code>
<code>05</code>
<code> </code>
<code>06</code>
<code> </code><code>@Override</code>
<code>07</code>
<code> </code><code>public</code> <code>void</code> <code>onCreate(Bundle savedInstanceState) {</code>
<code>08</code>
<code> </code><code>super</code><code>.onCreate(savedInstanceState);</code>
<code>09</code>
<code> </code><code>setContentView(R.layout.main1);</code>
<code>10</code>
<code> </code>
<code>11</code>
<code> </code><code>iv = (ImageView)findViewById(R.id.tp);</code>
<code>12</code>
<code> </code><code>btn = (Button)findViewById(R.id.an);</code>
<code>13</code>
<code> </code><code>btn.setOnClickListener(</code><code>new</code> <code>MyOnClickListener());</code>
<code>14</code>
<code>15</code>
<code> </code><code>}</code>
<code>16</code>
<code>17</code>
<code>18</code>
<code> </code><code>/**</code>
<code>19</code>
<code> </code><code>* 通過java反射機制反射出R.drawable類中的屬性,因為都是靜态常量是以可以擷取屬性對應的值。</code>
<code>20</code>
<code> </code><code>* @author Administrator</code>
<code>21</code>
<code> </code><code>*</code>
<code>22</code>
<code> </code><code>*/</code>
<code>23</code>
<code> </code><code>public</code> <code>class</code> <code>MyOnClickListener </code><code>implements</code> <code>OnClickListener{</code>
<code>24</code>
<code>25</code>
<code> </code><code>@SuppressWarnings</code><code>(</code><code>"unchecked"</code><code>)</code>
<code>26</code>
<code> </code><code>public</code> <code>void</code> <code>onClick(View v) {</code>
<code>27</code>
<code> </code><code>Class drawable = R.drawable.</code><code>class</code><code>;</code>
<code>28</code>
<code> </code><code>Field field = </code><code>null</code><code>;</code>
<code>29</code>
<code> </code><code>try</code> <code>{</code>
<code>30</code>
<code> </code><code>field = drawable.getField(</code><code>"icon"</code><code>);</code>
<code>31</code>
<code> </code><code>int</code> <code>r_id = field.getInt(field.getName());</code>
<code>32</code>
<code> </code><code>iv.setBackgroundResource(r_id);</code>
<code>33</code>
<code> </code><code>} </code><code>catch</code> <code>(Exception e) {</code>
<code>34</code>
<code> </code><code>Log.e(</code><code>"ERROR"</code><code>, </code><code>"PICTURE NOT FOUND!"</code><code>);</code>
<code>35</code>
<code> </code><code>}</code>
<code>36</code>
<code> </code><code>}</code>
<code>37</code>
<code>38</code>
<code>39</code>
<code>40</code>
<code>41</code>
<code>}</code>