﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Java,永远不敢言精通-随笔分类-Android</title><link>http://www.blogjava.net/crazycoding/category/44428.html</link><description>God helps those who help themselves. </description><language>zh-cn</language><lastBuildDate>Wed, 13 Feb 2013 10:08:58 GMT</lastBuildDate><pubDate>Wed, 13 Feb 2013 10:08:58 GMT</pubDate><ttl>60</ttl><item><title>android 线条选择器</title><link>http://www.blogjava.net/crazycoding/archive/2013/01/30/394917.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Wed, 30 Jan 2013 03:27:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2013/01/30/394917.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/394917.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2013/01/30/394917.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/394917.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/394917.html</trackback:ping><description><![CDATA[<p>如下图所示，本文将介绍如何通过修改EditText里的值，动态的改变所画Line的宽度（只介绍大概思路）</p>
<p><img src="http://www.blogjava.net/images/blogjava_net/crazycoding/QQ截图20130130104853.png" width="387" height="277" alt="" /></p>
<p><br />
</p>
<p>1.定义一个layout，用于放置Line</p>
<p>
</p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">LinearLayout&nbsp;</span><span style="color: #FF0000; ">android:id</span><span style="color: #0000FF; ">="@+id/ll_feature_width_legend"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width</span><span style="color: #0000FF; ">="58dp"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000FF; ">="45dp"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_marginLeft</span><span style="color: #0000FF; ">="15dp"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_toRightOf</span><span style="color: #0000FF; ">="@id/tv_feature_width_edit"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:background</span><span style="color: #0000FF; ">="#FFFFFF"</span><span style="color: #0000FF; ">/&gt;</span></div>
<p>&nbsp;</p>
<p><br />
</p>
<p>2.在自定义View里画Line</p>
<p>
</p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">Paint&nbsp;paint&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;Paint();<br />
paint.setStrokeWidth(</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.width);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;canvas.drawLine(</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.getWidth(),&nbsp;</span><span style="color: #000000; ">10</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.getHeight()&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">10</span><span style="color: #000000; ">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;paint);</span></div>
<p>&nbsp;</p>
<p>其中，width就是EditText里传过来的宽度</p>
<p><br />
</p>
<p>3.将自定义的View放到【1】的layout里</p>
<p>
</p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">widthLayout&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(LinearLayout)&nbsp;view<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.findViewById(R.id.ll_feature_width_legend);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;widthLegend&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;DBLayerListSymbolView(</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.activity,&nbsp;width);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;widthLayout.addView(widthLegend);</span></div>
<p>&nbsp;</p>
<p>其中，
<span style="color: #000000; ">DBLayerListSymbolView是自定义的View，width是EditText传过来的宽度</span>
</p>
<p><span style="color: #000000; "><br />
</span></p>
<p><span style="color: #000000; ">4.在自定义的View里追加如下代码，以动态改变width的值，并刷新界面<br />
</span></p>
<p>
</p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #008000; ">/**</span><span style="color: #008000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;change&nbsp;symbol&nbsp;draw&nbsp;width<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080; ">@param</span><span style="color: #008000; ">&nbsp;width<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;changeWidth(</span><span style="color: #0000FF; ">float</span><span style="color: #000000; ">&nbsp;width)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.width&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;width;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;invalidate();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<span style="color: #000000; "><br />
</span>
<p>&nbsp;</p>
<p><span style="color: #000000; ">5.给EditText追加TextChangedListener，实现其中的onTextChanged方法：<br />
</span></p>
<p>
</p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">@Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;onTextChanged(CharSequence&nbsp;text,&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;arg1,&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;arg2,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> arg3) {</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">float</span><span style="color: #000000; ">&nbsp;width&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;Float.parseFloat(text.toString());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(width&nbsp;</span><span style="color: #000000; ">&gt;=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;width&nbsp;</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">20</span><span style="color: #000000; ">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mWidth&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;width;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: yellow;">widthLegend.changeWidth(width);</span><span style="color: #000000; "><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<span style="color: #000000; "><br />
</span>
<p>&nbsp;</p>
<p><span style="color: #000000; ">这样，随着EditText里值的变化，旁边白色区域内就能够动态的显示对应宽度的线条<br />
</span></p>
<p><span style="color: #000000; "><br />
</span></p>
<p><span style="color: #000000; ">本文受启发于：http://nxsfan.co.uk/blog/2010/06/18/ondraw-drawing-a-simple-line-on-a-background/<br />
</span></p>
<p><span style="color: #000000; ">另外，最近发现了个不错的jar包下载网站：http://jarfiles.pandaidea.com/<br />
</span></p>
<p><span style="color: #000000; "><br />
</span></p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<img src ="http://www.blogjava.net/crazycoding/aggbug/394917.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2013-01-30 11:27 <a href="http://www.blogjava.net/crazycoding/archive/2013/01/30/394917.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Step by Step——Google Map View2 （i am here）</title><link>http://www.blogjava.net/crazycoding/archive/2011/10/14/361236.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Fri, 14 Oct 2011 02:01:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/10/14/361236.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/361236.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/10/14/361236.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/361236.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/361236.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: TODO：对上一篇随笔：Step by Step&#8212;&#8212;Google Map View（Hello View） 进行进一步改进，使其能够获取设备当前位置，并显示对应地图step1：定义LocationManager，获取当前location，并封装成GeoPoint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loc...&nbsp;&nbsp;<a href='http://www.blogjava.net/crazycoding/archive/2011/10/14/361236.html'>阅读全文</a><img src ="http://www.blogjava.net/crazycoding/aggbug/361236.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-10-14 10:01 <a href="http://www.blogjava.net/crazycoding/archive/2011/10/14/361236.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Step by Step——Google Map View（Hello View）</title><link>http://www.blogjava.net/crazycoding/archive/2011/10/12/361061.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Wed, 12 Oct 2011 07:47:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/10/12/361061.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/361061.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/10/12/361061.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/361061.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/361061.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 今天参照Android Api里的Hello Views来学习GMap，不想，Api里好多错误，囧so，我在这里贴出正确的代码，供大家参考TODO（1）：显示Map（Creating a Map Activity）step1：创建一个新的工程step2：由于Maps library不是标准库里的东东，SO，要在AndroidManifest.xml文件中加上一个library：...&nbsp;&nbsp;<a href='http://www.blogjava.net/crazycoding/archive/2011/10/12/361061.html'>阅读全文</a><img src ="http://www.blogjava.net/crazycoding/aggbug/361061.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-10-12 15:47 <a href="http://www.blogjava.net/crazycoding/archive/2011/10/12/361061.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>#Android java.lang.ClassNotFoundException: ...in loader dalvik.system.PathClassLoader@43b7d6d0</title><link>http://www.blogjava.net/crazycoding/archive/2011/10/11/360957.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Tue, 11 Oct 2011 05:32:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/10/11/360957.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/360957.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/10/11/360957.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/360957.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/360957.html</trackback:ping><description><![CDATA[加入节点：users-library<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">activity</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">uses-library&nbsp;</span><span style="color: #ff0000;">android:name&nbsp;</span><span style="color: #0000ff;">=&nbsp;"com.google.android.maps"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">application</span><span style="color: #0000ff;">&gt;</span></div><br /><br /><br /><br /><img src ="http://www.blogjava.net/crazycoding/aggbug/360957.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-10-11 13:32 <a href="http://www.blogjava.net/crazycoding/archive/2011/10/11/360957.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>#Android com.google.android.maps.MapView in loader dalvik.system.PathClassLoader@43b7d6d0</title><link>http://www.blogjava.net/crazycoding/archive/2011/10/11/360956.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Tue, 11 Oct 2011 05:26:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/10/11/360956.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/360956.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/10/11/360956.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/360956.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/360956.html</trackback:ping><description><![CDATA[没有继承 MapActivity<br />eg：<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;GMapTest&nbsp;</span><span style="color: #0000ff;">extends</span><span style="color: #000000;">&nbsp;Activity&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;">&nbsp;Called&nbsp;when&nbsp;the&nbsp;activity&nbsp;is&nbsp;first&nbsp;created.&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;onCreate(Bundle&nbsp;savedInstanceState)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">super</span><span style="color: #000000;">.onCreate(savedInstanceState);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.main);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</span></div><br />改成：<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;GMapTest&nbsp;</span><span style="color: #0000ff;">extends</span><span style="color: #000000;">&nbsp;MapActivity&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;">&nbsp;Called&nbsp;when&nbsp;the&nbsp;activity&nbsp;is&nbsp;first&nbsp;created.&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;onCreate(Bundle&nbsp;savedInstanceState)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">super</span><span style="color: #000000;">.onCreate(savedInstanceState);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.main);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">protected</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;isRouteDisplayed()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</span></div><br /><br /><br /><br /><br /><br /><br /><br /><img src ="http://www.blogjava.net/crazycoding/aggbug/360956.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-10-11 13:26 <a href="http://www.blogjava.net/crazycoding/archive/2011/10/11/360956.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>#Android 获取(keystore)Maps API Key</title><link>http://www.blogjava.net/crazycoding/archive/2011/10/11/360937.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Tue, 11 Oct 2011 02:36:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/10/11/360937.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/360937.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/10/11/360937.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/360937.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/360937.html</trackback:ping><description><![CDATA[(Getting the MD5 Fingerprint of the SDK Debug Certificate)<br />
<div>申请网址：<a title="http://code.google.com/intl/en/android/add-ons/google-apis/mapkey.html" href="http://code.google.com/intl/en/android/add-ons/google-apis/mapkey.html">http://code.google.com/intl/en/android/add-ons/google-apis/mapkey.html</a></div>
<div>&#9312;打开cmd窗口，到.android目录下<br />
&#9313;按照$ keytool -list -alias alias_name -keystore my-release-key.keystore格式敲入命令<br />
&#9314;输入密码：android<br />
&#9315;获取到指纹<br />
附截图：<br />
<img src="http://www.blogjava.net/images/blogjava_net/crazycoding/androidmapkey1.png" alt="" border="0" height="119" width="743" /></div>
<div>&#9316;到网址：<a title="http://code.google.com/intl/en/android/add-ons/google-apis/maps-api-signup.html" href="http://code.google.com/intl/en/android/add-ons/google-apis/maps-api-signup.html">http://code.google.com/intl/en/android/add-ons/google-apis/maps-api-signup.html</a></div>
<div>勾选I have read and agree with the terms and conditions (printable version)<br />
输入刚刚获取到的指纹<br />
点击Generate API Key<br />
&#9317;获取到指纹所对应的密钥，并保存好，页面上提供了一段测试代码，不妨顺手试试。</div>
<br />
<div>附：Debug Key的相关参数<br />
Keystore name：debug.keystore<br />
Keystore password:android<br />
Key alias:androiddebugkey<br />
Key password:android<br />
CN:CN=Android Debug,O=Android，C=US</div>
<img src ="http://www.blogjava.net/crazycoding/aggbug/360937.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-10-11 10:36 <a href="http://www.blogjava.net/crazycoding/archive/2011/10/11/360937.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Android模拟器里安装apk</title><link>http://www.blogjava.net/crazycoding/archive/2011/10/11/360929.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Tue, 11 Oct 2011 01:25:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/10/11/360929.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/360929.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/10/11/360929.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/360929.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/360929.html</trackback:ping><description><![CDATA[&#9312;找到tools目录<br />
eg：<br />
D:\Android\android-sdk_r05-windows\android-sdk-windows\platform-tools<br />
<br />
&#9313;打开cmd窗口，路径切换到tools下<br />
<br />
&#9314;adb install XXX.apk<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/crazycoding/androidInstall.png" height="217" width="849" /><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/crazycoding/aggbug/360929.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-10-11 09:25 <a href="http://www.blogjava.net/crazycoding/archive/2011/10/11/360929.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>#Android 获得当前设备上可用Location Provider列表</title><link>http://www.blogjava.net/crazycoding/archive/2011/09/28/359698.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Wed, 28 Sep 2011 07:30:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/09/28/359698.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/359698.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/09/28/359698.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/359698.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/359698.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">LocationManager&nbsp;locationManager;</span></div>
<p><br />
</p>
<p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">locationManager&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(LocationManager)UserLocationTest.</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.getSystemService(Context.LOCATION_SERVICE);</span></div>
</p>
<p><br />
</p>
<p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">List</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">String</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;providers&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;locationManager.getAllProviders();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(Iterator&nbsp;iterator&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;providers.iterator();iterator.hasNext();)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;provider&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(String)iterator.next();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">====</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;provider&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">===</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<img src ="http://www.blogjava.net/crazycoding/aggbug/359698.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-09-28 15:30 <a href="http://www.blogjava.net/crazycoding/archive/2011/09/28/359698.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>#Android 使用User Location获取当前经纬度</title><link>http://www.blogjava.net/crazycoding/archive/2011/09/25/359471.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Sun, 25 Sep 2011 13:28:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/09/25/359471.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/359471.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/09/25/359471.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/359471.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/359471.html</trackback:ping><description><![CDATA[<p>step1：声明权限
</p>
<p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">uses-permission&nbsp;</span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.ACCESS_FINE_LOCATION"</span><span style="color: #0000FF; ">/&gt;</span></div>
<p>&nbsp;</p>
<p><br />
</p>
<p>step2：获取LocationManager对象</p>
<p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">LocationManager&nbsp;locationManager&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(LocationManager)LocationTest.</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.getSystemService(Context.LOCATION_SERVICE);</span></div>
<p><br />
</p>
<p>step3：选择LocationProvider，绑定LocationListener对象</p>
<p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;MyLocationListener());</span></div>
<p>&nbsp;</p>
<p><br />
</p>
<p>附：MyLocationListener</p>
<p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;MyLocationListener&nbsp;</span><span style="color: #0000FF; ">implements</span><span style="color: #000000; ">&nbsp;LocationListener{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;onLocationChanged(Location&nbsp;location)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(location.getLatitude());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(location.getLongitude());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;onProviderDisabled(String&nbsp;provider)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;onProviderEnabled(String&nbsp;provider)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;onStatusChanged(String&nbsp;provider,&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;status,&nbsp;Bundle&nbsp;extras)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<br />
<p>&nbsp;</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<img src ="http://www.blogjava.net/crazycoding/aggbug/359471.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-09-25 21:28 <a href="http://www.blogjava.net/crazycoding/archive/2011/09/25/359471.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spinner 使用方法小结</title><link>http://www.blogjava.net/crazycoding/archive/2011/07/09/353981.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Sat, 09 Jul 2011 08:15:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/07/09/353981.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/353981.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/07/09/353981.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/353981.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/353981.html</trackback:ping><description><![CDATA[android里的Spinner其实就是个ComboBox =。=<br />一。基本使用方法：<br />main.xml 不多解释 
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; width: 98%; font-size: 13px;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #0000ff;">&lt;?</span><span style="color: #ff00ff;">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000ff;">?&gt;</span><span style="color: #000000;"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">LinearLayout&nbsp;</span><span style="color: #ff0000;">xmlns:android</span><span style="color: #0000ff;">="http://schemas.android.com/apk/res/android"</span><span style="color: #ff0000;"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;android:orientation</span><span style="color: #0000ff;">="vertical"</span><span style="color: #ff0000;"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width</span><span style="color: #0000ff;">="fill_parent"</span><span style="color: #ff0000;"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000ff;">="fill_parent"</span><span style="color: #ff0000;"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">Spinner<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000;">android:id&nbsp;</span><span style="color: #0000ff;">=&nbsp;"@+id/mySpinner"</span><span style="color: #ff0000;"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width&nbsp;</span><span style="color: #0000ff;">=&nbsp;"fill_parent"</span><span style="color: #ff0000;"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height&nbsp;</span><span style="color: #0000ff;">="wrap_content"</span><span style="color: #ff0000;"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">LinearLayout</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /></span></div><br />在string.xml中使用&#8220;string-array&#8221;定义数据源。<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff;">&lt;?</span><span style="color: #ff00ff;">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000ff;">?&gt;</span><span style="color: #000000;"><br /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">resources</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">string&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="app_name"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">MySpinnerDemo</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">string</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">string-array&nbsp;</span><span style="color: #ff0000;">name&nbsp;</span><span style="color: #0000ff;">=&nbsp;"phones_array"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">item</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">iPhone</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">item</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">item</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">Android</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">item</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">item</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">BlackBerry</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">item</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">string-array</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">resources</span><span style="color: #0000ff;">&gt;</span></div><br />Activity类：<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;com.yinger;<br /><br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.app.Activity;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.os.Bundle;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.view.View;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.widget.AdapterView;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.widget.ArrayAdapter;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.widget.Spinner;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.widget.AdapterView.OnItemSelectedListener;<br /><br /></span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />&nbsp;*&nbsp;Spinner&nbsp;Demo<br />&nbsp;*&nbsp;</span><span style="color: #808080;">@author</span><span style="color: #008000;">&nbsp;Yinger<br />&nbsp;*&nbsp;@time&nbsp;2011-7-9&nbsp;下午01:54:59<br />&nbsp;*&nbsp;@mail&nbsp;melody.crazycoding@gmail.com<br />&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br /></span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;SpinnerDemo&nbsp;</span><span style="color: #0000ff;">extends</span><span style="color: #000000;">&nbsp;Activity&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;Spinner&nbsp;spinner&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;selected&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">0</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;">&nbsp;Called&nbsp;when&nbsp;the&nbsp;activity&nbsp;is&nbsp;first&nbsp;created.&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;onCreate(Bundle&nbsp;savedInstanceState)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">super</span><span style="color: #000000;">.onCreate(savedInstanceState);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.main);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spinner&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(Spinner)findViewById(R.id.mySpinner);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;initMySpinner();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;initMySpinner()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ArrayAdapter</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">CharSequence</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;adapter&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;ArrayAdapter.createFromResource(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">,&nbsp;R.array.phones_array,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android.R.layout.simple_spinner_item);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spinner.setAdapter(adapter);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spinner.setPrompt(</span><span style="color: #000000;">"</span><span style="color: #000000;">test</span><span style="color: #000000;">"</span><span style="color: #000000;">);</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spinner.setOnItemSelectedListener(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;SpinnerOnSelectedListener());<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;SpinnerOnSelectedListener&nbsp;</span><span style="color: #0000ff;">implements</span><span style="color: #000000;">&nbsp;OnItemSelectedListener{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;onItemSelected(AdapterView</span><span style="color: #000000;">&lt;?&gt;</span><span style="color: #000000;">&nbsp;adapterView,&nbsp;View&nbsp;view,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;position,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;id)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selected&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;adapterView.getItemAtPosition(position).toString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">selected===========&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;selected);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;onNothingSelected(AdapterView</span><span style="color: #000000;">&lt;?&gt;</span><span style="color: #000000;">&nbsp;arg0)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">selected===========&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Nothing</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</span></div><br />二。debug发现的一个小问题：<br />Spinner在初始化时会自动调用一次OnItemSelectedListener事件<br />原因：有人说是Bug，其实这与C#的事件机制类似，懒得说了=。=<br />提供的解决办法：<br />个人是通过在事件注册之前调用<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000;">spinner.setSelection(</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">);</span></div>但要注意，使用此方法，如果用户选择的也是第一项，那么OnItemSelectedListener事件不会被触发&#8230;&#8230;<br /><br />三。使用技巧<br />1.动态添加Spinner的数据源<br />修改initMySpinner方法，代码如下：<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;initMySpinner()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;phones&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;{</span><span style="color: #000000;">"</span><span style="color: #000000;">iPhone</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">Android</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">BlackBerry</span><span style="color: #000000;">"</span><span style="color: #000000;">};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ArrayAdapter</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">String</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;adapter&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ArrayAdapter</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">String</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">,&nbsp;&nbsp;android.R.layout.&nbsp;simple_spinner_item,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;phones);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spinner.setAdapter(adapter);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spinner.setPrompt(</span><span style="color: #000000;">"</span><span style="color: #000000;">test</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spinner.setSelection(</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spinner.setOnItemSelectedListener(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;SpinnerOnSelectedListener());<br />&nbsp;&nbsp;&nbsp;&nbsp;}</span></div><br />2.自定义Spinner的Layout，替换掉体统默认的android.R.layout.simple_spinner_item<br />super easy<br />my_spinner_item.xml:<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff;">&lt;?</span><span style="color: #ff00ff;">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000ff;">?&gt;</span><span style="color: #000000;"><br /></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">TextView&nbsp;</span><span style="color: #ff0000;">xmlns:android</span><span style="color: #0000ff;">="http://schemas.android.com/apk/res/android"</span><span style="color: #ff0000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width</span><span style="color: #0000ff;">="fill_parent"</span><span style="color: #ff0000;">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000ff;">="wrap_content"</span><span style="color: #ff0000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;android:textSize</span><span style="color: #0000ff;">="12dip"</span><span style="color: #ff0000;">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;android:textColor</span><span style="color: #0000ff;">="#FF8B1500"</span><span style="color: #ff0000;">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;android:gravity</span><span style="color: #0000ff;">="center"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"> <br /></span></div>修改adapter：<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000;">ArrayAdapter</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">String</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;adapter&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ArrayAdapter</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">String</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">,&nbsp;&nbsp;R.layout.my_spinner_item,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;phones);</span></div>同理，可自定义layout，替换掉android.R.layout.simple_spinner_dropdown_item<br /><br />3.同时显示图片和文本<br />自定义Adapter：<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;com.yinger;<br /><br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.content.Context;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.graphics.Color;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.view.Gravity;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.view.View;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.view.ViewGroup;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.widget.BaseAdapter;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.widget.ImageView;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.widget.LinearLayout;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.widget.TextView;<br /><br /></span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />&nbsp;*&nbsp;自定义Adapter<br />&nbsp;*&nbsp;</span><span style="color: #808080;">@author</span><span style="color: #008000;">&nbsp;Yinger<br />&nbsp;*&nbsp;@time&nbsp;2011-7-9&nbsp;下午03:39:34<br />&nbsp;*&nbsp;@mail&nbsp;melody.crazycoding@gmail.com<br />&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br /></span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;MyAdapter&nbsp;</span><span style="color: #0000ff;">extends</span><span style="color: #000000;">&nbsp;BaseAdapter&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;Context&nbsp;ctx;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;drawableIDs[];<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;stringIDs[];<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;MyAdapter(Context&nbsp;ctx,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;DrawableIDs[],&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;StringIDs[])<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.ctx&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;ctx;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.drawableIDs&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;DrawableIDs;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.stringIDs&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;StringIDs;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;getCount()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;drawableIDs.length&nbsp;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;Object&nbsp;getItem(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;position)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;drawableIDs&nbsp;[position];&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;getItemId(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;position)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;position;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;View&nbsp;getView(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;position,&nbsp;View&nbsp;convertView,&nbsp;ViewGroup&nbsp;parent)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LinearLayout&nbsp;ll&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;LinearLayout(&nbsp;ctx&nbsp;);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ll.setOrientation(LinearLayout.&nbsp;HORIZONTAL&nbsp;);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ll.setGravity(Gravity.&nbsp;CENTER_VERTICAL&nbsp;);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImageView&nbsp;iv&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ImageView(&nbsp;ctx&nbsp;);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iv.setImageResource(&nbsp;drawableIDs&nbsp;[position]);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iv.setLayoutParams(&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ViewGroup.LayoutParams(</span><span style="color: #000000;">100</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">40</span><span style="color: #000000;">));&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ll.addView(iv);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TextView&nbsp;tv&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;TextView(&nbsp;ctx&nbsp;);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tv.setText(&nbsp;stringIDs&nbsp;[position]);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tv.setTextSize(</span><span style="color: #000000;">14</span><span style="color: #000000;">);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tv.setTextColor(Color.BLUE&nbsp;);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ll.addView(tv);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;ll;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></span></div><br />修改initMySpinner方法：<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;initMySpinner()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">[]&nbsp;phonePics&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;{R.drawable.apple,R.drawable.android,R.drawable.blackberry};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">[]&nbsp;phones&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;{&nbsp;&nbsp;&nbsp;R.string.iphone,&nbsp;R.string.android,&nbsp;&nbsp;R.string.blackberry};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyAdapter&nbsp;adapter&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;MyAdapter(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">,phonePics,phones);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spinner.setAdapter(adapter);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spinner.setPrompt(</span><span style="color: #000000;">"</span><span style="color: #000000;">test</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spinner.setSelection(</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>运行结果截图：<br /><img alt="" src="http://www.blogjava.net/images/blogjava_net/crazycoding/spinnerWithPic.png" height="489" width="326" /><br /><br />OK，但使用自定义的Adapter，我们如何来获取选中的文本信息呢？<br />在MyAdapter中，修改getView方法，添加黄色区域代码如下：<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;View&nbsp;getView(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;position,&nbsp;View&nbsp;convertView,&nbsp;ViewGroup&nbsp;parent)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LinearLayout&nbsp;ll&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;LinearLayout(&nbsp;ctx&nbsp;);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ll.setOrientation(LinearLayout.&nbsp;HORIZONTAL&nbsp;);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ll.setGravity(Gravity.&nbsp;CENTER_VERTICAL&nbsp;);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImageView&nbsp;iv&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ImageView(&nbsp;ctx&nbsp;);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iv.setImageResource(&nbsp;drawableIDs&nbsp;[position]);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iv.setLayoutParams(&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ViewGroup.LayoutParams(</span><span style="color: #000000;">100</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">40</span><span style="color: #000000;">));&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ll.addView(iv);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TextView&nbsp;tv&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;TextView(&nbsp;ctx&nbsp;);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tv.setText(&nbsp;stringIDs&nbsp;[position]);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tv.setTextSize(</span><span style="color: #000000;">14</span><span style="color: #000000;">);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tv.setTextColor(Color.BLUE&nbsp;);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: yellow;">tv.setTag(&nbsp;</span><span style="color: #000000; background-color: yellow;">"</span><span style="color: #000000; background-color: yellow;">tagTextView</span><span style="color: #000000; background-color: yellow;">"</span><span style="color: #000000; background-color: yellow;">&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ll.addView(tv); </span><span style="color: #0000ff;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return</span><span style="color: #000000;">&nbsp;ll;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}</span></div><br />重写事件中的onItemSelected方法：<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;onItemSelected(AdapterView</span><span style="color: #000000;">&lt;?&gt;</span><span style="color: #000000;">&nbsp;adapterView,&nbsp;View&nbsp;view,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;position,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">long</span><span style="color: #000000;">&nbsp;id)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(adapterView.getId()&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;R.id.mySpinner)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LinearLayout&nbsp;ll&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(LinearLayout)view;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TextView&nbsp;tv&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(TextView)ll.findViewWithTag(&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">tagTextView</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;str&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(String)tv.getText();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">selected===========&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;str);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div><br />最后，别忘了注册该事件。=。= <img src ="http://www.blogjava.net/crazycoding/aggbug/353981.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-07-09 16:15 <a href="http://www.blogjava.net/crazycoding/archive/2011/07/09/353981.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android 创建复合控件</title><link>http://www.blogjava.net/crazycoding/archive/2011/06/12/352115.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Sun, 12 Jun 2011 01:53:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/06/12/352115.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/352115.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/06/12/352115.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/352115.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/352115.html</trackback:ping><description><![CDATA[<p>&#9312;自定义复合控件的布局：</p>
<p>clearable_edit_text.xml:</p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000FF; ">?&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">LinearLayout<br />
&nbsp;&nbsp;</span><span style="color: #FF0000; ">xmlns:android</span><span style="color: #0000FF; ">="http://schemas.android.com/apk/res/android"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;android:layout_height</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;android:orientation&nbsp;</span><span style="color: #0000FF; ">=&nbsp;"horizontal"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">EditText<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF0000; ">android:id&nbsp;</span><span style="color: #0000FF; ">=&nbsp;"@+id/editText"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width&nbsp;</span><span style="color: #0000FF; ">=&nbsp;"200dp"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height&nbsp;</span><span style="color: #0000FF; ">=&nbsp;"wrap_content"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">Button<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF0000; ">android:id&nbsp;</span><span style="color: #0000FF; ">=&nbsp;"@+id/clearButton"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width&nbsp;</span><span style="color: #0000FF; ">=&nbsp;"100dp"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height&nbsp;</span><span style="color: #0000FF; ">=&nbsp;"wrap_content"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:text&nbsp;</span><span style="color: #0000FF; ">=&nbsp;"Clear"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">LinearLayout</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span></div>
<p>很简单，不废话</p>
<p>&#9313;选择适合放置子控件的布局类，并将其扩展
</p>
<p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; ">package</span><span style="color: #000000; ">&nbsp;com.yinger;<br />
<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.content.Context;<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.util.AttributeSet;<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.view.LayoutInflater;<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.view.View;<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.widget.Button;<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.widget.EditText;<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.widget.LinearLayout;<br />
<br />
</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;MyClearableEditText&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;LinearLayout&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;EditText&nbsp;editText;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Button&nbsp;clearButton;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;MyClearableEditText(Context&nbsp;context,&nbsp;AttributeSet&nbsp;attrs)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">super</span><span style="color: #000000; ">(context,&nbsp;attrs);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO&nbsp;Auto-generated&nbsp;constructor&nbsp;stub</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hookupButton();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;MyClearableEditText(Context&nbsp;context)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">super</span><span style="color: #000000; ">(context);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hookupButton();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;init()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;infService&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;Context.LAYOUT_INFLATER_SERVICE;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LayoutInflater&nbsp;li;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;li&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(LayoutInflater)&nbsp;getContext().getSystemService(infService);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;li.inflate(R.layout.clearable_edit_text,&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;editText&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(EditText)&nbsp;findViewById(R.id.editText);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clearButton&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(Button)&nbsp;findViewById(R.id.clearButton);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;void&nbsp;init2()&nbsp;{<br />
</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setOrientation(LinearLayout.VERTICAL);<br />
</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;editText&nbsp;=&nbsp;new&nbsp;EditText(getContext());<br />
</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clearButton&nbsp;=&nbsp;new&nbsp;Button(getContext());<br />
</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clearButton.setText("Clear");<br />
</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;lHeight&nbsp;=&nbsp;LayoutParams.WRAP_CONTENT;<br />
</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;lWidth&nbsp;=&nbsp;LayoutParams.FILL_PARENT;<br />
</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addView(editText,new&nbsp;LinearLayout.LayoutParams(lWidth,lHeight));<br />
</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addView(clearButton,new&nbsp;LinearLayout.LayoutParams(lWidth,lHeight));<br />
</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;hookupButton(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clearButton.setOnClickListener(</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;Button.OnClickListener(){<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;onClick(View&nbsp;v)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;editText.setText(</span><span style="color: #000000; ">""</span><span style="color: #000000; ">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</span></div>
</p>
<p>&#9314;引用</p>
<p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000FF; ">?&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">LinearLayout&nbsp;</span><span style="color: #FF0000; ">xmlns:android</span><span style="color: #0000FF; ">="http://schemas.android.com/apk/res/android"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;android:orientation</span><span style="color: #0000FF; ">="vertical"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">TextView&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF0000; ">android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; ">&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000FF; ">="wrap_content"</span><span style="color: #FF0000; ">&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;android:text</span><span style="color: #0000FF; ">="@string/hello"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">com</span><span style="color: #FF0000; ">.yinger.MyClearableEditText<br />
&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; ">&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000FF; ">="wrap_content"</span><span style="color: #FF0000; ">&nbsp;<br />
</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">LinearLayout</span><span style="color: #0000FF; ">&gt;</span></div>
</p>
<p><br />
</p>
<p><br />
</p>
<img src ="http://www.blogjava.net/crazycoding/aggbug/352115.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-06-12 09:53 <a href="http://www.blogjava.net/crazycoding/archive/2011/06/12/352115.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自定义android控件——TextView  并添加到ListView中</title><link>http://www.blogjava.net/crazycoding/archive/2011/06/11/352105.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Sat, 11 Jun 2011 13:26:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/06/11/352105.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/352105.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/06/11/352105.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/352105.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/352105.html</trackback:ping><description><![CDATA[<p>&#9312;在values文件夹下定义TextView的颜色和边距规则：
</p>
<p>颜色规则：notepadcolors.xml</p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000FF; ">?&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">resources</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;页面&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">color&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="notepad_paper"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">#AAFFFF99</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">color</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;边缘&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">color&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="notepad_lines"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">#FF0000FF</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">color</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;行&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">color&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="notepad_margin"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">#90FF0000</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">color</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;文本&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">color&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="notepad_text"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">#AA0000FF</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">color</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">resources</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span></div>
<p>边距规则：notepaddimens.xml</p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000FF; ">?&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">resources</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">dimen&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="notepad_margin"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">30dp</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">dimen</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">resources</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span></div>
<p>&#9313;创建一个扩展原TextView的新类，并重写onDraw方法来修改视图的外观</p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; ">package</span><span style="color: #000000; ">&nbsp;com.yinger;<br />
<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.content.Context;<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.content.res.Resources;<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.graphics.Canvas;<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.graphics.Paint;<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.util.AttributeSet;<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.widget.TextView;<br />
<br />
</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;TodoListItemView&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;TextView&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;Paint&nbsp;marginPaint;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;Paint&nbsp;linePaint;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;paperColor;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">float</span><span style="color: #000000; ">&nbsp;margin;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;TodoListItemView(Context&nbsp;context,&nbsp;AttributeSet&nbsp;attrs,&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;defStyle)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">super</span><span style="color: #000000; ">(context,&nbsp;attrs,&nbsp;defStyle);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO&nbsp;Auto-generated&nbsp;constructor&nbsp;stub</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;TodoListItemView(Context&nbsp;context,&nbsp;AttributeSet&nbsp;attrs)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">super</span><span style="color: #000000; ">(context,&nbsp;attrs);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;TodoListItemView(Context&nbsp;context)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">super</span><span style="color: #000000; ">(context);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;init()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resources&nbsp;myResources&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;getResources();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;Create&nbsp;the&nbsp;paint&nbsp;brushes&nbsp;we&nbsp;will&nbsp;use&nbsp;in&nbsp;the&nbsp;onDraw&nbsp;method.</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;marginPaint&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;Paint(Paint.ANTI_ALIAS_FLAG);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;marginPaint.setColor(myResources.getColor(R.color.notepad_margin));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;linePaint&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;Paint(Paint.ANTI_ALIAS_FLAG);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;linePaint.setColor(myResources.getColor(R.color.notepad_lines));<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;Get&nbsp;the&nbsp;paper&nbsp;background&nbsp;color&nbsp;and&nbsp;the&nbsp;margin&nbsp;width.</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;paperColor&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;myResources.getColor(R.color.notepad_paper);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;margin&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;myResources.getDimension(R.dimen.notepad_margin);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">protected</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;onDraw(Canvas&nbsp;canvas)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;Color&nbsp;as&nbsp;paper</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;canvas.drawColor(paperColor);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;Draw&nbsp;ruled&nbsp;lines</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;canvas.drawLine(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">30.0f</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,&nbsp;linePaint);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;canvas.drawLine(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,&nbsp;getMeasuredHeight(),&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getMeasuredWidth(),&nbsp;getMeasuredHeight(),&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;linePaint);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;Draw&nbsp;margin</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;canvas.drawLine(margin,&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,&nbsp;margin,&nbsp;getMeasuredHeight(),&nbsp;marginPaint);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;Move&nbsp;the&nbsp;text&nbsp;across&nbsp;from&nbsp;the&nbsp;margin</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;canvas.save();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;canvas.translate(margin,&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;Use&nbsp;the&nbsp;TextView&nbsp;to&nbsp;render&nbsp;the&nbsp;text.</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">super</span><span style="color: #000000; ">.onDraw(canvas);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;canvas.restore();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</span></div>
<p>注：要重写所有的构造方法，这样比较保险。</p>
<p>-----------------------------------------------------------我是分隔线-------------------------------------------------------------------</p>
<p>OK，以上，已经实现了TextView的自定义，下面我们看看怎么来引用它（以ListView为例）</p>
<p>&#9314;在layout文件夹下创建list item 的布局规定：</p>
<p>todolist_item.xml&nbsp;</p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000FF; ">?&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; background-color: #ffff00">com</span><span style="color: #ff0000; background-color: #ffff00">.</span><span style="color: #ff0000; background-color: #ffff00">yinger.TodoListItemView</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;xmlns:android</span><span style="color: #0000FF; ">="http://schemas.android.com/apk/res/android"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;android:layout_height</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;android:padding</span><span style="color: #0000FF; ">="10dp"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;android:scrollbars</span><span style="color: #0000FF; ">="vertical"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;android:textColor</span><span style="color: #0000FF; ">="@color/notepad_text"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;android:fadingEdge</span><span style="color: #0000FF; ">="vertical"</span><span style="color: #FF0000; "><br />
</span><span style="color: #0000FF; ">/&gt;</span></div>
<p>注意，黄色部分是重点。<br />
</p>
<p>&#9315;大家熟悉的布局文件，我这里是main.xml，没啥好说的。</p>
<p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="utf-8"</span><span style="color: #0000FF; ">?&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">LinearLayout&nbsp;</span><span style="color: #FF0000; ">xmlns:android</span><span style="color: #0000FF; ">="http://schemas.android.com/apk/res/android"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;android:orientation</span><span style="color: #0000FF; ">="vertical"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;android:layout_height</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">EditText<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF0000; ">android:id</span><span style="color: #0000FF; ">="@+id/myEditText"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; ">&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000FF; ">="wrap_content"</span><span style="color: #FF0000; ">&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;android:text</span><span style="color: #0000FF; ">="New&nbsp;To&nbsp;Do&nbsp;Item"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">ListView&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF0000; ">android:id</span><span style="color: #0000FF; ">="@+id/myListView"</span><span style="color: #FF0000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; ">&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height</span><span style="color: #0000FF; ">="wrap_content"</span><span style="color: #FF0000; ">&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">LinearLayout</span><span style="color: #0000FF; ">&gt;</span></div>
</p>
<p>&#9316;和以前一样的定义ListView，没啥区别：<br />
</p>
<p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; ">package</span><span style="color: #000000; ">&nbsp;com.yinger;<br />
<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;java.util.ArrayList;<br />
<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.app.Activity;<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.os.Bundle;<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.view.KeyEvent;<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.view.View;<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.view.View.OnKeyListener;<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.widget.ArrayAdapter;<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.widget.EditText;<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.widget.ListView;<br />
<br />
</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;TextViewDemo&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;Activity&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">/**</span><span style="color: #008000; ">&nbsp;Called&nbsp;when&nbsp;the&nbsp;activity&nbsp;is&nbsp;first&nbsp;created.&nbsp;</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;onCreate(Bundle&nbsp;savedInstanceState)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">super</span><span style="color: #000000; ">.onCreate(savedInstanceState);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.main);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;Get&nbsp;references&nbsp;to&nbsp;UI&nbsp;widgets</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ListView&nbsp;myListView&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(ListView)findViewById(R.id.myListView);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">final</span><span style="color: #000000; ">&nbsp;EditText&nbsp;myEditText&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(EditText)findViewById(R.id.myEditText);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">final</span><span style="color: #000000; ">&nbsp;ArrayList</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">String</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;todoItems&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;ArrayList</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">String</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;resID&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;R.layout.todolist_item;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">final</span><span style="color: #000000; ">&nbsp;ArrayAdapter</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">String</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;aa&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;ArrayAdapter</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">String</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">,&nbsp;resID,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;todoItems);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myListView.setAdapter(aa);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myEditText.setOnKeyListener(</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;OnKeyListener()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">boolean</span><span style="color: #000000; ">&nbsp;onKey(View&nbsp;v,&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;keyCode,&nbsp;KeyEvent&nbsp;event)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(event.getAction()&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;KeyEvent.ACTION_DOWN)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(keyCode&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;KeyEvent.KEYCODE_DPAD_CENTER)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;todoItems.add(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,&nbsp;myEditText.getText().toString());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aa.notifyDataSetChanged();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myEditText.setText(</span><span style="color: #000000; ">""</span><span style="color: #000000; ">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</span></div>
</p>
<p><br />
</p>
<p>运行结果截图：</p>
<p><img src="http://www.blogjava.net/images/blogjava_net/crazycoding/myTextViewDemo3.png" width="329" height="490" alt="" /><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<img src ="http://www.blogjava.net/crazycoding/aggbug/352105.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-06-11 21:26 <a href="http://www.blogjava.net/crazycoding/archive/2011/06/11/352105.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>android中可以使用标签来创建样式</title><link>http://www.blogjava.net/crazycoding/archive/2011/06/06/351821.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Mon, 06 Jun 2011 10:43:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/06/06/351821.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/351821.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/06/06/351821.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/351821.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/351821.html</trackback:ping><description><![CDATA[<p>
在values下新建一个styles.xml文件：    </p>
<p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">&lt;?</span><span style="color: #000000; ">xml&nbsp;version</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">1.0</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;encoding</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">utf-8</span><span style="color: #000000; ">"</span><span style="color: #000000; ">?&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">resources</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">style&nbsp;name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">ToDoTheme</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; background-color: #00ff00">parent</span><span style="color: #000000; background-color: #00ff00">=</span><span style="color: #000000; background-color: #00ff00">"</span><span style="color: #000000; background-color: #00ff00">@android:style/Theme.Black</span><span style="color: #000000; background-color: #00ff00">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">item&nbsp;name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">android:textSize</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">12sp</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">item</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">style</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">resources</span><span style="color: #000000; ">&gt;</span></div>
</p>
<p>在manifest中引用该样式：    </p>
<p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000; ">&lt;?</span><span style="color: #000000; ">xml&nbsp;version</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">1.0</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;encoding</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">utf-8</span><span style="color: #000000; ">"</span><span style="color: #000000; ">?&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">manifest&nbsp;xmlns:android</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">http://schemas.android.com/apk/res/android</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />
&nbsp;&nbsp;</span><span style="color: #0000FF; ">package</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">com.paad.todolist</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />
&nbsp;&nbsp;android:versionCode</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">1</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />
&nbsp;&nbsp;android:versionName</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">1.0</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">application&nbsp;android:icon</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">@drawable/icon</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;android:label</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">@string/app_name</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;android:debuggable</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">True</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">activity&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">.ToDoList</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:label</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">@string/app_name</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #ffff00">android:theme</span><span style="color: #000000; background-color: #ffff00">=</span><span style="color: #000000; background-color: #ffff00">"</span><span style="color: #000000; background-color: #ffff00">@style/ToDoTheme</span><span style="color: #000000; background-color: #ffff00">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">intent</span><span style="color: #000000; ">-</span><span style="color: #000000; ">filter</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">action&nbsp;android:name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">android.intent.action.MAIN</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">/&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">category&nbsp;android:name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">android.intent.category.LAUNCHER</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">/&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">intent</span><span style="color: #000000; ">-</span><span style="color: #000000; ">filter</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">activity</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">application</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">uses</span><span style="color: #000000; ">-</span><span style="color: #000000; ">sdk&nbsp;android:minSdkVersion</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">7</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">/&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">manifest</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;</span></div>
</p>
<p>此外，多说一嘴：不知读者住没注意到样式支持通过在标签上使用parent属性来进行继承（见绿色部分）<br />
</p>
<p>注：本文参考《android 2 高级编程》一书</p>
标签上使用parent属性来进行继承（见绿色区域）  注：本文参考《android 2 高级编程》一书
</body>
</html>
</body>
</html>
<img src ="http://www.blogjava.net/crazycoding/aggbug/351821.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-06-06 18:43 <a href="http://www.blogjava.net/crazycoding/archive/2011/06/06/351821.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>android 的尺寸单位</title><link>http://www.blogjava.net/crazycoding/archive/2011/06/06/351807.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Mon, 06 Jun 2011 04:58:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/06/06/351807.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/351807.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/06/06/351807.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/351807.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/351807.html</trackback:ping><description><![CDATA[<p>
&#9312;px（屏幕像素）</p>
<p>&#9313;in （物理英寸）</p>
<p>&#9314;mm（物理毫米）</p>
<p>&#9315;dp（相对于160-dip（dots per inch）的屏幕的非密度制约的像素）</p>
<p>&#9316;sp（缩放比例无关（Scale-independent）的像素）</p>
<p><br />
</p>
<p>PS：我一般用dp和sp -。-</p>
<img src ="http://www.blogjava.net/crazycoding/aggbug/351807.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-06-06 12:58 <a href="http://www.blogjava.net/crazycoding/archive/2011/06/06/351807.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android requires .class compatibility set to 5.0. Please fix project properties.</title><link>http://www.blogjava.net/crazycoding/archive/2011/06/06/351805.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Mon, 06 Jun 2011 04:50:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/06/06/351805.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/351805.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/06/06/351805.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/351805.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/351805.html</trackback:ping><description><![CDATA[<p>解决办法：
</p>
<p>工程上右键--&gt;Android Tools--&gt;Fix Project Properties</p>
<p>然后rebuild</p>
<img src ="http://www.blogjava.net/crazycoding/aggbug/351805.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-06-06 12:50 <a href="http://www.blogjava.net/crazycoding/archive/2011/06/06/351805.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【工具类】获取android手机联系人的名子和号码，并以List的形式返回</title><link>http://www.blogjava.net/crazycoding/archive/2011/05/26/351044.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Thu, 26 May 2011 02:05:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/05/26/351044.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/351044.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/05/26/351044.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/351044.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/351044.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;yinger.firewall.util;<br /><br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.ArrayList;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.HashMap;<br /><br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.content.ContentResolver;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.content.Context;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.database.Cursor;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.provider.ContactsContract;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.provider.ContactsContract.PhoneLookup;<br /><br /></span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />&nbsp;*&nbsp;ReadContactsUtil<br />&nbsp;*&nbsp;<br />&nbsp;*&nbsp;</span><span style="color: #808080;">@author</span><span style="color: #008000;">&nbsp;Ying_er<br />&nbsp;*&nbsp;@Email&nbsp;melody.crazycoding@gmail.com<br />&nbsp;*&nbsp;@time&nbsp;2011/03/30&nbsp;11:57:23<br />&nbsp;*&nbsp;</span><span style="color: #808080;">@version</span><span style="color: #008000;">&nbsp;1.00<br />&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br /></span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;MyReadContactsUtil&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@return</span><span style="color: #008000;">&nbsp;contacts&nbsp;list<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;ArrayList&nbsp;getContacts(Context&nbsp;context)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ArrayList</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">HashMap</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">String,&nbsp;String</span><span style="color: #000000;">&gt;&gt;</span><span style="color: #000000;">&nbsp;list&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ArrayList</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">HashMap</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">String,&nbsp;String</span><span style="color: #000000;">&gt;&gt;</span><span style="color: #000000;">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;number&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">""</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ContentResolver&nbsp;cr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;context.getContentResolver();</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;得到一个ContentResolver对象<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;得到一个游标查询对象</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cursor&nbsp;cursor&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;cr.query(ContactsContract.Contacts.CONTENT_URI,&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">&nbsp;(cursor.moveToNext())&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;获取联系人的名字的索引</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;nameFieldColumnIndex&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;cursor<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getColumnIndex(PhoneLookup.DISPLAY_NAME);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;获取联系人的名字</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;contact&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;cursor.getString(nameFieldColumnIndex);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cursor&nbsp;target&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;context.getContentResolver().query(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ContactsContract.Contacts.CONTENT_URI,&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.moveToFirst();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;得到联系人的ID</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;contentId&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;cursor.getString(target<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getColumnIndex(ContactsContract.Contacts._ID));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;isPnone&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;cursor<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getString(cursor<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(Integer.parseInt(isPnone)&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cursor&nbsp;phone&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;context.getContentResolver().query(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ContactsContract.CommonDataKinds.Phone.CONTENT_URI,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ContactsContract.CommonDataKinds.Phone.CONTACT_ID&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;contentId,&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">&nbsp;(phone.moveToNext())&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;得到联系人电话</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;number&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;phone<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getString(phone<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HashMap</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">String,&nbsp;String</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;map&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;HashMap</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">String,&nbsp;String</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(</span><span style="color: #000000;">"</span><span style="color: #000000;">number</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;number);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(</span><span style="color: #000000;">"</span><span style="color: #000000;">name</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;contact);</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;number&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">""</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.add(map);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;phone.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cursor.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;list;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></span></div><img src ="http://www.blogjava.net/crazycoding/aggbug/351044.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-05-26 10:05 <a href="http://www.blogjava.net/crazycoding/archive/2011/05/26/351044.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>还在用递归删除文件夹及里面的文件吗？android下一行命令搞定！</title><link>http://www.blogjava.net/crazycoding/archive/2011/05/25/350983.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Wed, 25 May 2011 03:31:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/05/25/350983.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/350983.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/05/25/350983.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/350983.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/350983.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000;">/**</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;delete&nbsp;Memory&nbsp;APP_ROOT&nbsp;(menus)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;deleteMemoryRoot()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Runtime.getRuntime().exec(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">rm&nbsp;-r&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;fileUtils.getCurrentRoot()&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;APP_ROOT);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(</span><span style="color: #000000;">500</span><span style="color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(InterruptedException&nbsp;e)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;catch&nbsp;block</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(IOException&nbsp;e)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;catch&nbsp;block</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}</span></div><br />注：刚刚执行完此命令后，android很疲惫，需要睡一会儿，否则再对此路径做文件操作会报错&#8212;&#8212;这才是我最想说的。。。<img src ="http://www.blogjava.net/crazycoding/aggbug/350983.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-05-25 11:31 <a href="http://www.blogjava.net/crazycoding/archive/2011/05/25/350983.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用PreferenceActivity时，如何获取ListPreference中选中的值</title><link>http://www.blogjava.net/crazycoding/archive/2011/04/05/347641.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Tue, 05 Apr 2011 07:47:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/04/05/347641.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/347641.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/04/05/347641.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/347641.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/347641.html</trackback:ping><description><![CDATA[汗~~~研究了一天，貌似ListPreference中根本就没有什么回调函数可以用<br />
于是，向上一层，把注意力集中于SharedPreferences，<br />
发现有这么个接口：onSharedPreferenceChanged<br />
抱着试试看的态度，实现了该接口，发现此方法可行，先将部分代码分享如下：<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;yinger.firewall;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.content.SharedPreferences;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.content.SharedPreferences.OnSharedPreferenceChangeListener;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.os.Bundle;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.preference.CheckBoxPreference;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.preference.ListPreference;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.preference.Preference;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.preference.PreferenceActivity;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.preference.PreferenceManager;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;android.preference.PreferenceScreen;<br />
<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;CallFireWall&nbsp;</span><span style="color: #0000ff;">extends</span><span style="color: #000000;">&nbsp;PreferenceActivity&nbsp;</span><span style="color: #0000ff;">implements</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OnSharedPreferenceChangeListener&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;ListPreference&nbsp;lp&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;whiteMode&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">1</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;blackMode&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">2</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;">&nbsp;Called&nbsp;when&nbsp;the&nbsp;activity&nbsp;is&nbsp;first&nbsp;created.&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;onCreate(Bundle&nbsp;savedInstanceState)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">super</span><span style="color: #000000;">.onCreate(savedInstanceState);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addPreferencesFromResource(R.xml.preferences);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.setTitle(</span><span style="color: #000000;">"</span><span style="color: #000000;">Ying_er</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;Call&nbsp;Safe</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SharedPreferences&nbsp;prefs&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;PreferenceManager<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getDefaultSharedPreferences(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prefs.registerOnSharedPreferenceChangeListener(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">);</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lp&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(ListPreference)&nbsp;findPreference(getString(R.string.pref_mode_key));</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;onPreferenceTreeClick(PreferenceScreen&nbsp;preferenceScreen,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Preference&nbsp;preference)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">super</span><span style="color: #000000;">.onPreferenceTreeClick(preferenceScreen,&nbsp;preference);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;onSharedPreferenceChanged(SharedPreferences&nbsp;sharedPreferences,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;key)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">onSharedPreferenceChanged</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(key&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;getString(R.string.pref_mode_key)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(lp.getValue());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(lp.getValue().equals(whiteMode)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</span></div>
<br />
注意：该事件需要注册。既：<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">prefs.registerOnSharedPreferenceChangeListener(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">);<br />
</span></div>
<br />
<br />
<img src ="http://www.blogjava.net/crazycoding/aggbug/347641.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-04-05 15:47 <a href="http://www.blogjava.net/crazycoding/archive/2011/04/05/347641.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>generating final archive: Debug Certificate expired on 11-3-27 下午3:05 MyMp3Player Unknown	Android Packaging Problem</title><link>http://www.blogjava.net/crazycoding/archive/2011/03/27/347110.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Sun, 27 Mar 2011 09:55:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/03/27/347110.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/347110.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/03/27/347110.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/347110.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/347110.html</trackback:ping><description><![CDATA[今天新建项目时突然提示：<br />
<span style="color: red;">&nbsp; Error</span> <span style="color: red;">generating</span> <span style="color: red;">final archive: Debug C</span><span style="color: red;">ertificate expired on 11-3-27 下午3:05	MyMp3Player Unknown	Android Packaging&nbsp; Proble</span><span style="color: red;">m</span>&nbsp;&nbsp;&nbsp; <br />
而且项目上有个小红叉<br />
原因：Google官方给出了解决办法：<br />
<br />
To fix this problem, simply delete the debug.keystore file. The default storage location for AVDs is in ~/.android/avd on OS X and Linux, in C:\Documents and Settings\\.android\ on Windows XP, and in C:\Users\\.android\ on Windows Vista.<br />
<br />
The next time you build, the build tools will regenerate a new keystore and debug key<br />
<br />
也就是删掉.android文件夹下的debug.keystore文件，然后重新build一下获取新的debug.keystore。这样新建项目时就正常了。<br />
我表示很囧。<br />
<br />
<br />
<img src ="http://www.blogjava.net/crazycoding/aggbug/347110.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-03-27 17:55 <a href="http://www.blogjava.net/crazycoding/archive/2011/03/27/347110.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java.net.ConnectException: Connection 127.0.0.1:8080 refused</title><link>http://www.blogjava.net/crazycoding/archive/2011/03/13/346160.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Sun, 13 Mar 2011 12:36:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/03/13/346160.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/346160.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/03/13/346160.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/346160.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/346160.html</trackback:ping><description><![CDATA[在使用android内置的模拟器访问本地机器上的资源时会报该错误<br />
原因：模拟器把自己当成主机了，即，将127.0.0.1指向了自己<br />
解决办法：android有个内置的ip：10.0.22，使用该ip来访问本地机器<br />
既：<br />
将原url：http://localhost:8080/androidLoadTest/web/test.txt<br />
改为：http://10.0.2.2:8080/androidLoadTest/web/test.txt<br />
<br />
<img src ="http://www.blogjava.net/crazycoding/aggbug/346160.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-03-13 20:36 <a href="http://www.blogjava.net/crazycoding/archive/2011/03/13/346160.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ERROR: the user data image is used by another emulator. aborting</title><link>http://www.blogjava.net/crazycoding/archive/2011/03/13/346158.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Sun, 13 Mar 2011 12:14:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/03/13/346158.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/346158.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/03/13/346158.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/346158.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/346158.html</trackback:ping><description><![CDATA[原因：上次没有正常关闭该模拟器，模拟器被锁定，占用着资源<br />
解决办法：打开 C:/Documents and Settings/users/.android/avd/你所使用的模拟器名称<br />
删去以.lock结尾的文件夹即可
<img src ="http://www.blogjava.net/crazycoding/aggbug/346158.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-03-13 20:14 <a href="http://www.blogjava.net/crazycoding/archive/2011/03/13/346158.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>即使HelloWorld也 java.lang.NullPointerException at com.android.ddmlib.Client.sendAndConsume(Client.java:572)</title><link>http://www.blogjava.net/crazycoding/archive/2011/03/09/346031.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Wed, 09 Mar 2011 08:16:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2011/03/09/346031.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/346031.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2011/03/09/346031.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/346031.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/346031.html</trackback:ping><description><![CDATA[[2011-03-09 15:39:23 - ddms]null<br />
java.lang.NullPointerException<br />
&nbsp;&nbsp;&nbsp; at com.android.ddmlib.Client.sendAndConsume(Client.java:572)<br />
&nbsp;&nbsp;&nbsp; at com.android.ddmlib.HandleHello.sendHELO(HandleHello.java:142)<br />
&nbsp;&nbsp;&nbsp; at com.android.ddmlib.HandleHello.sendHelloCommands(HandleHello.java:65)<br />
&nbsp;&nbsp;&nbsp; at com.android.ddmlib.Client.getJdwpPacket(Client.java:671)<br />
&nbsp;&nbsp;&nbsp; at com.android.ddmlib.MonitorThread.processClientActivity(MonitorThread.java:317)<br />
&nbsp;&nbsp;&nbsp; at com.android.ddmlib.MonitorThread.run(MonitorThread.java:263)<br />
<br />
[2011-03-09 15:39:23 - ddms]null<br />
java.lang.NullPointerException<br />
&nbsp;&nbsp;&nbsp; at com.android.ddmlib.Client.sendAndConsume(Client.java:572)<br />
&nbsp;&nbsp;&nbsp; at com.android.ddmlib.HandleHello.sendHELO(HandleHello.java:142)<br />
&nbsp;&nbsp;&nbsp; at com.android.ddmlib.HandleHello.sendHelloCommands(HandleHello.java:65)<br />
&nbsp;&nbsp;&nbsp; at com.android.ddmlib.Client.getJdwpPacket(Client.java:671)<br />
&nbsp;&nbsp;&nbsp; at com.android.ddmlib.MonitorThread.processClientActivity(MonitorThread.java:317)<br />
&nbsp;&nbsp;&nbsp; at com.android.ddmlib.MonitorThread.run(MonitorThread.java:263)<br />
<br />
具体原因不明，但修改下AVD SDCard的Size就OK了。 囧死。<br />
<br />
<img src ="http://www.blogjava.net/crazycoding/aggbug/346031.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2011-03-09 16:16 <a href="http://www.blogjava.net/crazycoding/archive/2011/03/09/346031.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>android平台架构模型</title><link>http://www.blogjava.net/crazycoding/archive/2010/11/05/337280.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Fri, 05 Nov 2010 01:14:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2010/11/05/337280.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/337280.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2010/11/05/337280.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/337280.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/337280.html</trackback:ping><description><![CDATA[<img alt="" src="http://www.blogjava.net/images/blogjava_net/crazycoding/system-architecture.jpg" height="512" width="713" /><br />
<br />
PS：<br />
Application framework: 可重用的和可替换的组件部分，在这个层面上，所有的软件都是平等的。<br />
Dalvik virtul machine: 一个基于Linux的虚拟机。<br />
Integrated browser: 一个基于开源的WebKit引擎的浏览器，在应用程序层。<br />
Optimized graphics: 包含一个自定义的2D图形库和基于OpenGL ES 1.0 标准的3D实现。<br />
SQLite: 数据库<br />
Media support: 通用的音频，视频和对各种图片格式的支持(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)<br />
GSM Telephony: GSM 移动网络, 硬件支持。<br />
Bluetooth, EDGE, 3G, and WiFi: 都依赖于硬件支持。<br />
Camera, GPS, compass, and accelerometer: 都依赖于硬件支持。<br />
Rich development environment: 包含一套完整的开发工具集，方便跟踪调试，内存检测和性能测试，而且提供了Eclipse的插件。<br />
<br />
<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/crazycoding/aggbug/337280.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2010-11-05 09:14 <a href="http://www.blogjava.net/crazycoding/archive/2010/11/05/337280.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>android Installed Packages时 Faild to fetch URL</title><link>http://www.blogjava.net/crazycoding/archive/2010/09/09/331470.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Thu, 09 Sep 2010 02:14:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2010/09/09/331470.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/331470.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2010/09/09/331470.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/331470.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/331470.html</trackback:ping><description><![CDATA[解决办法：<br />
<a title="http://www.android123.com.cn/zhongwensdk/366.html" href="http://www.android123.com.cn/zhongwensdk/366.html">http://www.android123.com.cn/zhongwensdk/366.html</a><br />
<br />
<img src ="http://www.blogjava.net/crazycoding/aggbug/331470.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2010-09-09 10:14 <a href="http://www.blogjava.net/crazycoding/archive/2010/09/09/331470.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>……is missing required source folder gen</title><link>http://www.blogjava.net/crazycoding/archive/2010/03/27/316701.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Sat, 27 Mar 2010 08:14:00 GMT</pubDate><guid>http://www.blogjava.net/crazycoding/archive/2010/03/27/316701.html</guid><wfw:comment>http://www.blogjava.net/crazycoding/comments/316701.html</wfw:comment><comments>http://www.blogjava.net/crazycoding/archive/2010/03/27/316701.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/crazycoding/comments/commentRss/316701.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crazycoding/services/trackbacks/316701.html</trackback:ping><description><![CDATA[Eclipse3.5.2 + Android ADT2.1<br />
创建新的Android项目后总是提示错误：Project ... is missing required source folder:
'gen'。<br />
解决办法:将Eclipse自动生成的R.java删掉，刷新项目，R.java便会重新生成<br />
<br />
<img src ="http://www.blogjava.net/crazycoding/aggbug/316701.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crazycoding/" target="_blank">Ying-er</a> 2010-03-27 16:14 <a href="http://www.blogjava.net/crazycoding/archive/2010/03/27/316701.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>