<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[hi,hebei]]></title> 
<link>http://www.hihebei.com/index.php</link> 
<description><![CDATA[hi,hebei]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[hi,hebei]]></copyright>
<item>
<link>http://www.hihebei.com/read.php/36.htm</link>
<title><![CDATA[如何在 Android 程序中禁止屏幕旋转和重启Activity]]></title> 
<author>hihebei &lt;admin@yourname.com&gt;</author>
<category><![CDATA[Android]]></category>
<pubDate>Tue, 27 Mar 2012 13:06:58 +0000</pubDate> 
<guid>http://www.hihebei.com/read.php/36.htm</guid> 
<description>
<![CDATA[ 
	&nbsp; <div class="entry-body"><div><div class="item-body"><div><h3>禁止屏幕随手机旋转变化</h3><p>有时候我们希望让一个程序的界面始终保持在一个方向，不随手机方向旋转而变化：<br />在AndroidManifest.xml的每一个需要禁止转向的Activity配置中加入 <strong><span style="color: red">android:screenOrientation</span>=&rdquo;landscape&rdquo; </strong>属性。</p></div></div></div></div><p>landscape = 横向<br />portrait = 纵向</p><p></p><h3>避免在转屏时重启Activity</h3><p>android中每次屏幕方向切换时都会重启Activity，所以应该在Activity销毁前保存当前活动的状态，在Activity再次 Create的时候载入配置，那样，进行中的游戏就不会自动重启了！<br />要避免在转屏时重启Activity，可以通过在AndroidManifest.xml文件中重新定义方向(给每个Activity加上 <strong><span style="color: red">android:configChanges</span>=&rdquo;keyboardHidden&#124;orientation&rdquo;</strong>属性)。<br />在需要控制屏幕显示方向的Activity中重写 <strong>onConfigurationChanged(Configuration newConfig)</strong>方法，这样在转屏时就不会重启Activity了。</p><div><div id="highlighter_964440" class="syntaxhighlighter&nbsp;&nbsp;java"><div class="bar&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;&nbsp;"><div class="toolbar"><a style="width: 16px; height: 16px" href="http://null/#viewSource" title="view source" class="item viewSource">view source</a> <a style="width: 16px; height: 16px" href="http://null/#printSource" title="print" class="item printSource">print</a><a style="width: 16px; height: 16px" href="http://null/#about" title="?" class="item about">?</a></div></div><div class="lines"><div class="line alt1"><table border="0"><tbody><tr><td class="number">01</td><td class="content">if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE)&#123; </td></tr></tbody></table></div><div class="line alt2"><table border="0"><tbody><tr><td class="number">02</td><td class="content">&nbsp;&nbsp;</td></tr></tbody></table></div><div class="line alt1"><table border="0"><tbody><tr><td class="number">03</td><td class="content">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//横向 </td></tr></tbody></table></div><div class="line alt2"><table border="0"><tbody><tr><td class="number">04</td><td class="content">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.file_list_landscape); </td></tr></tbody></table></div><div class="line alt1"><table border="0"><tbody><tr><td class="number">05</td><td class="content">&nbsp;&nbsp;</td></tr></tbody></table></div><div class="line alt2"><table border="0"><tbody><tr><td class="number">06</td><td class="content">&#125;else&#123; </td></tr></tbody></table></div><div class="line alt1"><table border="0"><tbody><tr><td class="number">07</td><td class="content">&nbsp;&nbsp;</td></tr></tbody></table></div><div class="line alt2"><table border="0"><tbody><tr><td class="number">08</td><td class="content">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//竖向 </td></tr></tbody></table></div><div class="line alt1"><table border="0"><tbody><tr><td class="number">09</td><td class="content">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.file_list); </td></tr></tbody></table></div><div class="line alt2"><table border="0"><tbody><tr><td class="number">10</td><td class="content">&nbsp;&nbsp;</td></tr></tbody></table></div><div class="line alt1"><table border="0"><tbody><tr><td class="number">11</td><td class="content">&#125;</td></tr></tbody></table></div></div></div></div><p>在模拟器中可以按 CTL+F11 模拟做屏幕旋转。</p><br/>Tags - <a href="http://www.hihebei.com/go.php/tags/android/" rel="tag">android</a>
]]>
</description>
</item><item>
<link>http://www.hihebei.com/read.php/35.htm</link>
<title><![CDATA[php intval和floatval]]></title> 
<author>hihebei &lt;admin@yourname.com&gt;</author>
<category><![CDATA[php]]></category>
<pubDate>Thu, 16 Feb 2012 13:58:11 +0000</pubDate> 
<guid>http://www.hihebei.com/read.php/35.htm</guid> 
<description>
<![CDATA[ 
	intval是将数据值整型化，而floatval则是将数值浮点化。但是需要关注的问题是intval最大值为2147483647，而floatval的值可以大的得多。所以当数值超过int最大值后，你获取的数值只是2147483647，但是为防止非法数据传入，可以用floatval替换intval，以解决数值问题，并且floatval并不带小数点的。我以前以为是带小数点的。<br /><br/>Tags - <a href="http://www.hihebei.com/go.php/tags/php/" rel="tag">php</a> , <a href="http://www.hihebei.com/go.php/tags/intval/" rel="tag">intval</a> , <a href="http://www.hihebei.com/go.php/tags/floatval/" rel="tag">floatval</a> , <a href="http://www.hihebei.com/go.php/tags/%25E6%25B5%25AE%25E7%2582%25B9/" rel="tag">浮点</a> , <a href="http://www.hihebei.com/go.php/tags/%25E6%2595%25B4%25E5%259E%258B/" rel="tag">整型</a> , <a href="http://www.hihebei.com/go.php/tags/%25E6%2595%25B0%25E5%2580%25BC/" rel="tag">数值</a>
]]>
</description>
</item><item>
<link>http://www.hihebei.com/read.php/34.htm</link>
<title><![CDATA[php unix linux时间戳的问题]]></title> 
<author>hihebei &lt;admin@yourname.com&gt;</author>
<category><![CDATA[php]]></category>
<pubDate>Thu, 16 Feb 2012 13:51:40 +0000</pubDate> 
<guid>http://www.hihebei.com/read.php/34.htm</guid> 
<description>
<![CDATA[ 
	查了一天资料最终发现php的时间戳精度为10位，而unix和linux的时间戳可以精确到毫秒，所以是13位。而尾部的3位基本上没有什么意义的。<br />所以在java，js开发过程中去掉尾部3位。<br />现摘在别人的如下：<br />第一个：<br />由于精度不同，导致长度不一致，直接转换错误。 <br />JAVA时间戳长度是13位，如：1294890876859 <br />PHP时间戳长度是10位， 如：1294890859 <br /> <br />主要最后三位的不同，JAVA时间戳在PHP中使用，去掉后三位，如：1294890876859-&gt; 1294890876 结果:<span style="color: red">2011-01-13 11:54:36</span> <br /><div class="dp-highlighter"><div class="bar"><div class="tools">Java代码 &nbsp;<a title="收藏这段代码"><img class="star" src="http://xyliufeng.iteye.com/images/icon_star.png" border="0" alt="收藏代码" /></a></div></div><ol class="dp-j"><li><span><span>echo&nbsp;date(</span><span class="string">'Y-m-d&nbsp;H:i:s'</span><span>,</span><span class="string">'1294890876'</span><span>);&nbsp;&nbsp;</span></span></li></ol></div> <br /> <br />PHP时间戳在JAVA中使用，最后加三位，用000补充,如：1294890859-&gt;1294890859000 <br />结果:<span style="color: red">2011-01-13 11:54:19</span> <br /><div class="dp-highlighter"><div class="bar"><div class="tools">Java代码 &nbsp;<a title="收藏这段代码"><img class="star" src="http://xyliufeng.iteye.com/images/icon_star.png" border="0" alt="收藏代码" /></a></div></div><ol class="dp-j"><li><span><span>SimpleDateFormat&nbsp;df&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;SimpleDateFormat(</span><span class="string">&quot;yyyy-MM-dd&nbsp;HH:mm:ss&quot;</span><span>);&nbsp;&nbsp;&nbsp;</span></span></li><li><span>String&nbsp;dateTime&nbsp;=&nbsp;df.format(1294890859000L);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li><li><span>System.out.println(df);&nbsp; <br /></span></li></ol><p>第二个<br /></p><div class="bct fc05 fc11 nbw-blog ztag js-fs2"><div> &nbsp;&nbsp;<p> &nbsp;&nbsp;&nbsp;&nbsp;由PHP传入JS处理的时间戳我说怎么老是对不上号呢，原来JS时间戳为13位，包含3位毫秒的，而PHP只有10位不包含毫秒的。看来得补补基础了。</p> &nbsp;&nbsp;<p> &nbsp;&nbsp;&nbsp;&nbsp;附我的一个解决Comment发表时间的函数：</p> &nbsp;&nbsp;<div> &nbsp;&nbsp;&nbsp;&nbsp;<div> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: Gray">&lt;</span><span style="color: Blue">script</span><span style="color: Gray">&gt; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: Green">var</span><span style="color: Gray"> </span><span style="color: Blue">nowtime</span><span style="color: Gray"> = </span><span style="color: Olive">(</span><span style="color: Green">new</span><span style="color: Gray"> </span><span style="color: Teal">Date</span><span style="color: Olive">)</span><span style="color: Gray">.</span><span style="color: Blue">getTime</span><span style="color: Olive">()</span><span style="color: Gray">;</span><span style="color: #ffa500">/*当前时间戳*/</span><span style="color: Gray"> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ffa500">/*转换时间，计算差值*/</span><span style="color: Gray"> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: Green">function</span><span style="color: Gray"> </span><span style="color: Blue">comptime</span><span style="color: Olive">(</span><span style="color: Blue">beginTime</span><span style="color: Gray">,</span><span style="color: Blue">endTime</span><span style="color: Olive">)&#123;</span><span style="color: Gray"> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="color: Green">var</span><span style="color: Gray"> </span><span style="color: Blue">secondNum</span><span style="color: Gray"> = </span><span style="color: Blue">parseInt</span><span style="color: Olive">((</span><span style="color: Blue">endTime</span><span style="color: Gray">-</span><span style="color: Blue">beginTime</span><span style="color: Gray">*</span><span style="color: Maroon">1000</span><span style="color: Olive">)</span><span style="color: #8b0000">/</span><span style="color: Red">1000);</span><span style="color: #8b0000">//</span><span style="color: Red">计算时间戳差值&nbsp; &nbsp; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;if(secondNum&gt;=0&amp;&amp;secondNum&lt;60)&#123; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return secondNum+'秒前'; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&#125; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;else if (secondNum&gt;=60&amp;&amp;secondNum&lt;3600)&#123; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;var nTime=parseInt(secondNum</span><span style="color: #8b0000">/</span><span style="color: Maroon">60</span><span style="color: Olive">)</span><span style="color: Gray">; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green">return</span><span style="color: Gray"> </span><span style="color: Blue">nTime</span><span style="color: Gray">+</span><span style="color: #8b0000">'</span><span style="color: Red">分钟前</span><span style="color: #8b0000">'</span><span style="color: Gray">; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="color: Olive">&#125;</span><span style="color: Gray"> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="color: Green">else</span><span style="color: Gray"> </span><span style="color: Green">if</span><span style="color: Gray"> </span><span style="color: Olive">(</span><span style="color: Blue">secondNum</span><span style="color: Gray">&gt;=</span><span style="color: Maroon">3600</span><span style="color: Gray">&amp;&amp;</span><span style="color: Blue">secondNum</span><span style="color: Gray">&lt;</span><span style="color: Maroon">3600</span><span style="color: Gray">*</span><span style="color: Maroon">24</span><span style="color: Olive">)&#123;</span><span style="color: Gray"> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green">var</span><span style="color: Gray"> </span><span style="color: Blue">nTime</span><span style="color: Gray">=</span><span style="color: Blue">parseInt</span><span style="color: Olive">(</span><span style="color: Blue">secondNum</span><span style="color: #8b0000">/</span><span style="color: Red">3600); <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return nTime+'小时前'; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&#125; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;else&#123; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;var nTime = parseInt(secondNum</span><span style="color: #8b0000">/</span><span style="color: Maroon">86400</span><span style="color: Olive">)</span><span style="color: Gray">; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green">return</span><span style="color: Gray"> </span><span style="color: Blue">nTime</span><span style="color: Gray">+</span><span style="color: #8b0000">'</span><span style="color: Red">天前</span><span style="color: #8b0000">'</span><span style="color: Gray">; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="color: Olive">&#125;</span><span style="color: Gray"> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: Blue">t</span><span style="color: Gray"> = </span><span style="color: Blue">comptime</span><span style="color: Olive">(</span><span style="color: Blue">timestamp</span><span style="color: Gray">,</span><span style="color: Blue">nowtime</span><span style="color: Olive">)</span><span style="color: Gray">;</span><span style="color: #ffa500">//timestamp为PHP通过ajax回传的时间戳 </span><span style="color: Gray"><br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: Blue">alert</span><span style="color: Olive">(</span><span style="color: Blue">t</span><span style="color: Olive">)</span><span style="color: Gray">; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #8b0000">/</span><span style="color: Red">script&gt;</span></div> &nbsp;&nbsp;</div> </div></div></div><br /><br/>Tags - <a href="http://www.hihebei.com/go.php/tags/php/" rel="tag">php</a> , <a href="http://www.hihebei.com/go.php/tags/linux/" rel="tag">linux</a> , <a href="http://www.hihebei.com/go.php/tags/unix/" rel="tag">unix</a> , <a href="http://www.hihebei.com/go.php/tags/js/" rel="tag">js</a> , <a href="http://www.hihebei.com/go.php/tags/java/" rel="tag">java</a> , <a href="http://www.hihebei.com/go.php/tags/%25E6%2597%25B6%25E9%2597%25B4%25E6%2588%25B3/" rel="tag">时间戳</a>
]]>
</description>
</item><item>
<link>http://www.hihebei.com/read.php/33.htm</link>
<title><![CDATA[Android开发教程：Service的远程调用]]></title> 
<author>hihebei &lt;admin@yourname.com&gt;</author>
<category><![CDATA[Android]]></category>
<pubDate>Sun, 12 Feb 2012 16:10:52 +0000</pubDate> 
<guid>http://www.hihebei.com/read.php/33.htm</guid> 
<description>
<![CDATA[ 
	在<span>Andorid</span><span style="font-family: 宋体">平台中，各个组件运行在自己的进程中，他们之间是不能相互访问的，但是在程序之间是不可避免的要传递一些对象，在进程之间相互通信。为了实现进程之间的相互通信，</span><span>Andorid</span><span style="font-family: 宋体">采用了一种轻量级的实现方式</span><span>RPC(Remote Procedure Call </span><span style="font-family: 宋体">远程进程调用</span><span>)</span><span style="font-family: 宋体">来完成进程之间的通信，并且</span><span><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a></span><span style="font-family: 宋体">通过接口定义语言（</span><span>Andorid Interface Definition Language ,AIDL</span><span style="font-family: 宋体">）来生成两个进程之间相互访问的代码，例如，你在</span><span>Activity</span><span style="font-family: 宋体">里的代码需要访问</span><span>Service</span><span style="font-family: 宋体">中的一个方法，那么就可以通过这种方式来实现了。</span> <p><span style="font-family: 宋体">&nbsp;&nbsp; AIDL是<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>的一种接口描述语言; 编译器可以通过aidl文件生成一段代码，通过预先定义的接口达到两个进程内部通信进程的目的. 如果需要在一个Activity中, 访问另一个Service中的某个对象, 需要先将对象转化成 AIDL可识别的参数(可能是多个参数), 然后使用AIDL来传递这些参数, 在消息的接收端, 使用这些参数组装成自己需要的对象。</span></p><p><span style="font-family: 宋体">&nbsp;&nbsp; <span>AIDL RPC</span><span style="font-family: 宋体">机制是通过接口来实现的，类似</span><span>Windows</span><span style="font-family: 宋体">中的</span><span>COM</span><span style="font-family: 宋体">或者</span><span>Corba</span><span style="font-family: 宋体">，但他是轻量级的，客户端和被调用实现之间是通过代理模式实现的，代理类和被代理类实现同一个接口</span><span>Ibinder</span><span style="font-family: 宋体">接口。</span></span></p><p><span style="font-family: 宋体">下面是实现<span>Activity访问<span>Service例子的步骤：</span></span></span></p><p><strong><span style="font-size: 20px"><span style="font-family: 宋体"><span><span>一.创建.aidl文件</span></span></span></span></strong></p><p><span style="font-family: 宋体"><span><span>&nbsp;&nbsp;&nbsp; AIDL<span style="font-family: 宋体">使用简单的语法来声明接口，描述其方法以及方法的参数和返回值。这些参数和返回值可以是任何类型，甚至是其他</span>AIDL<span style="font-family: 宋体">生成的接口。重要的是必须导入导入除了内建类型（例如：<span>int,boolean</span><span style="font-family: 宋体">等）外的任何其他类型</span>，哪怕是这些类型是在与接口相同的包中。具体的要求如下：</span></span></span></span></p><ul><li><span style="font-family: 宋体"><span><span><span style="font-family: 宋体"><span>JAVA</span><span style="font-family: 宋体">基本数据类型不需要导入</span></span></span></span></span></li><li><span style="font-family: 宋体"><span><span><span style="font-family: 宋体"><span style="font-family: 宋体"><span>String,List,Map</span><span style="font-family: 宋体">和</span><span>CharSequence</span><span style="font-family: 宋体">不需要导入</span></span></span></span></span></span></li></ul><p>使用Eclipse的ADT插件创建一个BookInfo.aidl文件，该文件有4个方法：</p><p>setName(String name)设置图书的书名，setPrice(int price)设置图书的价格，setPublish(String pname)设置图书的出版社和String display()显示图书的信息.</p><p>BookInfo.aidl文件</p><pre><ol class="dp-xml"><li class="alt"><span><span>package&nbsp;com.<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.aidl; &nbsp;</span></span></li><li><span>&nbsp;</span></li><li class="alt"><span>//BookInfo接口 &nbsp;</span></li><li><span>interface&nbsp;BookInfo&#123; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;setName(String&nbsp;name); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;setPrice(int&nbsp;price); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;ssetPublish(String&nbsp;pname); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;//显示图书的信息 &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;display(); &nbsp;</span></li><li class="alt"><span>&#125;&nbsp;</span></li></ol></pre><p>创建好BookInfo.aidl文件，系统会自动在gen目录下生成Java接口文件BookInfo.java</p><p><img class="insertimage" src="attachment.php?fid=62" border="0" width="211" height="185" /><br /><br /></p><div id="content"><p><span style="font-size: 20px"><strong>二.实现AIDL文件生成的JAVA接口</strong></span></p><p>&nbsp;&nbsp;&nbsp; AIDL会生成一个和.aidl文件同名的JAVA接口文件，该接口中有一个静态抽象内部类Stub，该类中声明了AIDL文件中定义的所有方法，其中有一个重要的方法是asInterface()，该方法通过代理模式返回JAVA接口的实现我们可以定义一个实现类，BookImpl，该类继承Stub 类，实现我们定义的4个方法</p><table border="0" width="97%" align="center"><tbody><tr><td colspan="3"></td></tr></tbody></table><p></p><pre><ol class="dp-j"><li class="alt"><span><span class="keyword">package</span><span>&nbsp;com.<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.aidl; &nbsp;</span></span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.os.RemoteException; &nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;BookInfoImpl&nbsp;</span><span class="keyword">extends</span><span>&nbsp;BookInfo.Stub&nbsp;&#123; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//声明三个个变量 </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">int</span><span>&nbsp;price; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;String&nbsp;name,pname; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//显示书名，价格，出版社 </span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;String&nbsp;display()&nbsp;</span><span class="keyword">throws</span><span>&nbsp;RemoteException&#123; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;</span><span class="string">&quot;书名：&quot;</span><span>+name+</span><span class="string">&quot;;价格：&quot;</span><span>+price+</span><span class="string">&quot;;出版社：&quot;</span><span>+price; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//设置书名 </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;setName(String&nbsp;name)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;RemoteException&nbsp;&#123; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;TODO&nbsp;Auto </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.name=&nbsp;name; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;</span></li><li><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//设置价格 </span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;setPrice(</span><span class="keyword">int</span><span>&nbsp;price)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;RemoteException&nbsp;&#123; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub </span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.price&nbsp;=&nbsp;price; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//设置出版社 </span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;setPublish(String&nbsp;pname)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;RemoteException&nbsp;&#123; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;TODO&nbsp;Auto </span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.pname=&nbsp;pname; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&#125; &nbsp;</span></li></ol></pre><p><strong><span style="font-size: 20px">三.<span style="font-family: 宋体">向客户端暴露接口</span></span></strong></p><p><span style="font-size: 12pt; font-family: 宋体">现在已经实现了BookInfo接口，接下来要将该接口暴露给客户端调用。一般通过定义一个Service来实现，在Service的onBind()方法中返回该接口，当我们绑定该接口时调用该方法。</span></p><pre><ol class="dp-j"><li class="alt"><span><span class="keyword">package</span><span>&nbsp;com.<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.aidl; &nbsp;</span></span></li><li><span>&nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;com.<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.aidl.BookInfo.Stub; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.app.Service; &nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;android.content.Intent; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.os.IBinder; &nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;RemoteService&nbsp;</span><span class="keyword">extends</span><span>&nbsp;Service&nbsp;&#123; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//声明BookInfo接口 </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;Stub&nbsp;bookifo&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;BookInfoImpl(); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;IBinder&nbsp;onBind(Intent&nbsp;intent)&#123; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;bookifo; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;</span></li><li><span>&#125;&nbsp;</span></li></ol></pre><p><strong><span style="font-size: 20px">四.在客户端调用</span></strong></p><p>定义一个Activity来绑定远程Service，获得BookInfo接口，通过RPC机制调用接口中的方法。</p><pre><ol class="dp-j"><li class="alt"><span><span class="keyword">package</span><span>&nbsp;com.<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.aidl; &nbsp;</span></span></li><li><span>&nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.app.Activity; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.app.Service; &nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;android.content.ComponentName; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.content.Intent; &nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;android.content.ServiceConnection; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.os.Bundle; &nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;android.os.IBinder; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.os.RemoteException; &nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;android.view.View; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.view.View.OnClickListener; &nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;android.widget.Button; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.Toast; &nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;MainActivity&nbsp;</span><span class="keyword">extends</span><span>&nbsp;Activity&nbsp;&#123; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;声明IPerson接口 </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;BookInfo&nbsp;bookInfo; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;声明&nbsp;Button </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;Button&nbsp;btn; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;实例化ServiceConnection </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;ServiceConnection&nbsp;conn&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;ServiceConnection()&nbsp;&#123; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">synchronized</span><span>&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;onServiceConnected(ComponentName&nbsp;name,&nbsp;IBinder&nbsp;service)&nbsp;&#123; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;获得IPerson接口 </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bookInfo&nbsp;=&nbsp;BookInfo.Stub.asInterface(service); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(bookInfo&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>) &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span><span>&nbsp;&#123; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;RPC&nbsp;方法调用 </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bookInfo.setName(</span><span class="string">&quot;Google&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>&nbsp;SDK开发范例大全&quot;</span><span>); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bookInfo.setPrice(</span><span class="number">55</span><span>); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bookInfo.setPublish(</span><span class="string">&quot;人民邮电出版社&quot;</span><span>); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;msg&nbsp;=&nbsp;bookInfo.display(); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;显示方法调用返回值 </span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Toast.makeText(MainActivity.</span><span class="keyword">this</span><span>,&nbsp;msg,&nbsp;Toast.LENGTH_LONG) &nbsp;</span></li><li><span>&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;.show(); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;</span><span class="keyword">catch</span><span>&nbsp;(RemoteException&nbsp;e)&nbsp;&#123; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace(); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;onServiceDisconnected(ComponentName&nbsp;name)&nbsp;&#123; &nbsp;</span></li><li><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;; &nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;onCreate(Bundle&nbsp;savedInstanceState)&nbsp;&#123; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">super</span><span>.onCreate(savedInstanceState); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;设置当前视图布局 </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.main); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;实例化Button </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;btn&nbsp;=&nbsp;(Button)&nbsp;findViewById(R.id.Button1); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//为Button添加单击事件监听器 </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;btn.setOnClickListener(</span><span class="keyword">new</span><span>&nbsp;OnClickListener()&nbsp;&#123; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;onClick(View&nbsp;v)&nbsp;&#123; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;实例化Intent </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent&nbsp;intent&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;Intent(); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;设置Intent&nbsp;Action&nbsp;属性 </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intent.setAction(</span><span class="string">&quot;com.<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.aidl.action.MY_REMOTE_SERVICE&quot;</span><span>); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;绑定服务 </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bindService(intent,&nbsp;conn,&nbsp;Service.BIND_AUTO_CREATE); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;</span></li><li><span>&#125;&nbsp;</span></li></ol></pre><p><strong><span style="font-size: 20px">五.main.xml和<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>Manifest.xml文件</span></strong></p><p>main.xml</p><pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;utf-8&quot;</span><span class="tag">?&gt;</span><span>&nbsp;</span></span></li><li><span class="tag">&lt;</span><span class="tag-name">LinearLayout</span><span>&nbsp;</span><span class="attribute">xmlns:<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a></span><span>=</span><span class="attribute-value">&quot;http://schemas.android.com/apk/res/android&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:orientation</span><span>=</span><span class="attribute-value">&quot;vertical&quot;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">Button</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:text</span><span>=</span><span class="attribute-value">&quot;远程调用Service&quot;</span><span>&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:id</span><span>=</span><span class="attribute-value">&quot;@+id/Button1&quot;</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></li><li class="alt"><span class="tag">&lt;/</span><span class="tag-name">LinearLayout</span><span class="tag">&gt;</span><span>&nbsp;</span></li></ol></pre><p>在<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>Manifest.xml文件16~20声明Service</p><pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;utf-8&quot;</span><span class="tag">?&gt;</span><span>&nbsp;</span></span></li><li><span class="tag">&lt;</span><span class="tag-name">manifest</span><span>&nbsp;</span><span class="attribute">xmlns:<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a></span><span>=</span><span class="attribute-value">&quot;http://schemas.android.com/apk/res/android&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">package</span><span>=</span><span class="attribute-value">&quot;com.android.aidl&quot;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:versionCode</span><span>=</span><span class="attribute-value">&quot;1&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:versionName</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">uses-sdk</span><span>&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:minSdkVersion</span><span>=</span><span class="attribute-value">&quot;10&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">application</span><span>&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:icon</span><span>=</span><span class="attribute-value">&quot;@drawable/icon&quot;</span><span>&nbsp;</span><span class="attribute">android:label</span><span>=</span><span class="attribute-value">&quot;@string/app_name&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">activity</span><span>&nbsp;</span><span class="attribute">android:name</span><span>=</span><span class="attribute-value">&quot;.MainActivity&quot;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:label</span><span>=</span><span class="attribute-value">&quot;@string/app_name&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">intent-filter</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">action</span><span>&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:name</span><span>=</span><span class="attribute-value">&quot;android.intent.action.MAIN&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">category</span><span>&nbsp;</span><span class="attribute">android:name</span><span>=</span><span class="attribute-value">&quot;android.intent.category.LAUNCHER&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">intent-filter</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">activity</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">service</span><span>&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:name</span><span>=</span><span class="attribute-value">&quot;RemoteService&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">intent-filter</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">action</span><span>&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:name</span><span>=</span><span class="attribute-value">&quot;com.android.aidl.action.MY_REMOTE_SERVICE&quot;</span><span class="tag">/&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">intent-filter</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">service</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">application</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span class="tag">&lt;/</span><span class="tag-name">manifest</span><span class="tag">&gt;</span><span>&nbsp;</span></li></ol></pre><p>效果图：</p><p><img class="insertimage" src="attachment.php?fid=63" border="0" width="335" height="430" /></p></div><br /><br/>Tags - <a href="http://www.hihebei.com/go.php/tags/android/" rel="tag">android</a> , <a href="http://www.hihebei.com/go.php/tags/%25E5%25BC%2580%25E5%258F%2591%25E6%2595%2599%25E7%25A8%258B/" rel="tag">开发教程</a>
]]>
</description>
</item><item>
<link>http://www.hihebei.com/read.php/32.htm</link>
<title><![CDATA[Android开发教程：Spinner和AutoCompleteTextView浅析]]></title> 
<author>hihebei &lt;admin@yourname.com&gt;</author>
<category><![CDATA[Android]]></category>
<pubDate>Sun, 12 Feb 2012 16:07:09 +0000</pubDate> 
<guid>http://www.hihebei.com/read.php/32.htm</guid> 
<description>
<![CDATA[ 
	<div id="content"><pre class="alt"><span><div id="content"><strong><span style="font-size: large">一.Spinner的简介与创建 </span></strong><p><span style="font-size: 20px"><span><span style="font-size: 16px"><strong>1.<span style="font-size: 16px">Spinner的简介</span></strong></span></span></span></p><table border="0" width="97%" align="center"><tbody><tr><td colspan="3"></td></tr></tbody></table><br /><p><span>&nbsp;Spinner(下拉列表)是一个每次只能选择所有项中一项的控件，相当于Html中的下拉列表框。它的继承关系如下：<br />java.lang.Object <br />&nbsp;↳ <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.view.View <br />&nbsp;&nbsp; ↳ <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.view.ViewGroup <br />&nbsp;&nbsp;&nbsp;&nbsp; ↳ <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.AdapterView&lt;T extends android.widget.Adapter&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ↳ <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.AbsSpinner&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ↳ <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.Spinner</span></p><p><span>&nbsp; Spinner常用的XML属性：</span></p><p></p><table border="1" cellspacing="0" cellpadding="0" class="MsoNormalTable" style="margin-left: 26.7pt; border-top-style: none; border-right-style: none; border-left-style: none; border-collapse: collapse; border-bottom-style: none"><tbody><tr><td width="198" valign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; background: #dee8f1; padding-bottom: 0cm; width: 148.8pt; padding-top: 0cm; border: black 1pt solid"><p style="text-align: center" class="MsoNormal" align="center"><span style="font-family: 宋体">属性名称</span></p></td><td width="321" valign="top" style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt solid; padding-left: 5.4pt; background: #dee8f1; padding-bottom: 0cm; border-left: black 1pt; width: 241pt; padding-top: 0cm; border-bottom: black 1pt solid"><p style="text-align: center" class="MsoNormal" align="center"><span style="font-family: 宋体">描述</span></p></td></tr><tr><td width="198" style="border-right: black 1pt solid; padding-right: 5.4pt; border-top: black 1pt; padding-left: 5.4pt; padding-bottom: 0cm; border-left: black 1pt solid; width: 148.8pt; padding-top: 0cm; border-bottom: black 1pt solid"><p style="text-align: center" class="MsoNormal" align="center"><strong><span style="color: #c00000"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:prompt</span></strong></p></td><td width="321" style="border-right: black 1pt solid; padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0cm; width: 241pt; border-top-style: none; padding-top: 0cm; border-bottom: black 1pt solid; border-left-style: none"><p style="text-indent: 10.4pt" class="MsoNormal"><span style="font-family: 宋体">该提示在下拉列表对话框显示时显示。（译者注：对话框的标题：</span></p><p style="text-align: center" class="MsoNormal" align="center"></p><p><img src="http://www.linuxidc.com/upload/2012_01/120129101867821.jpg" border="0" width="334" height="114" /></p></td></tr></tbody></table><br /><p><span>2.创建使用<span style="font-size: 16px">Spinner的步骤如下：</span></span></p><p>①需要在布局中定时Spinner组件，然后向<span style="font-size: 16px">Spinner添加需要选择的数据</span></p><p>②设置事件监听器setOnItemSelectedListener( )并实现onItemSelected( )</p><p>3.Spinner添加数据的两种方法：</p><p>①在Java代码中载入列表数据<br />&nbsp;</p><p>具体的例子如下：</p><p>MainActivity.java</p><ol class="dp-j"><li class="alt"><span><span class="keyword">package</span><span>&nbsp;com.<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.spinner; &nbsp;</span></span></li><li><span>&nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.app.Activity; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.os.Bundle; &nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.view.View; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.AdapterView; &nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.ArrayAdapter; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.Spinner; &nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.TextView; &nbsp;</span></li><li><span>&nbsp;</span></li><li class="alt"><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;MainActivity&nbsp;</span><span class="keyword">extends</span><span>&nbsp;Activity&nbsp;&#123; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">final</span><span>&nbsp;String[]&nbsp;province=&#123;</span><span class="string">&quot;广东&quot;</span><span>,</span><span class="string">&quot;广西&quot;</span><span>,</span><span class="string">&quot;湖南&quot;</span><span>,</span><span class="string">&quot;河南&quot;</span><span>,</span><span class="string">&quot;福建&quot;</span><span>&#125;; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;TextView&nbsp;text; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;Spinner&nbsp;spinner; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;ArrayAdapter&lt;String&gt;&nbsp;adapter; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;onCreate(Bundle&nbsp;savedInstanceState)&nbsp;&#123; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">super</span><span>.onCreate(savedInstanceState); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.main); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text=(TextView)findViewById(R.id.text); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spinner=(Spinner)findViewById(R.id.spinner); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//将Spinner里面的可选择内容通过ArrayAdapter连接起来 </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adapter=</span><span class="keyword">new</span><span>&nbsp;ArrayAdapter&lt;String&gt;(</span><span class="keyword">this</span><span>,<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.R.layout.simple_spinner_item,province); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//设置Spinner的样式 </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adapter.setDropDownViewResource(<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.R.layout.simple_spinner_dropdown_item); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//为对话框设置标题 </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//也可在XMl文件中通过&ldquo;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:prompt&rdquo;设置 </span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spinner.setPrompt(</span><span class="string">&quot;你来自哪个省&quot;</span><span>); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//为Spinner设置适配器 </span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spinner.setAdapter(adapter); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//添加Spinner事件监听 </span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spinner.setOnItemSelectedListener(</span><span class="keyword">new</span><span>&nbsp;Spinner.OnItemSelectedListener()&#123; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;onItemSelected(AdapterView&lt;?&gt;&nbsp;arg0,&nbsp;View&nbsp;arg1, &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">int</span><span>&nbsp;arg2,&nbsp;</span><span class="keyword">long</span><span>&nbsp;arg3)&nbsp;&#123; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text.setText(</span><span class="string">&quot;你所在的城市是：&quot;</span><span>+province[arg2]); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//设置显示当前选择的项 </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arg0.setVisibility(View.VISIBLE); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;</span></li><li><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;onNothingSelected(AdapterView&lt;?&gt;&nbsp;arg0)&nbsp;&#123; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;</span></li><li class="alt"><span>&#125;&nbsp;</span></li></ol><pre class="alt"><span>&nbsp;<p>main.xml</p><pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;utf-8&quot;</span><span class="tag">?&gt;</span><span>&nbsp;</span></span></li><li><span class="tag">&lt;</span><span class="tag-name">LinearLayout</span><span>&nbsp;</span><span class="attribute">xmlns:<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a></span><span>=</span><span class="attribute-value">&quot;http://schemas.android.com/apk/res/android&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:orientation</span><span>=</span><span class="attribute-value">&quot;vertical&quot;</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:padding</span><span>=</span><span class="attribute-value">&quot;10dip&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">TextView</span><span>&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:id</span><span>=</span><span class="attribute-value">&quot;@+id/text&quot;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_marginTop</span><span>=</span><span class="attribute-value">&quot;10dip&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:text</span><span>=</span><span class="attribute-value">&quot;@string/planet_prompt&quot;</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">Spinner</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:id</span><span>=</span><span class="attribute-value">&quot;@+id/spinner&quot;</span><span>&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></li><li><span class="tag">&lt;/</span><span class="tag-name">LinearLayout</span><span class="tag">&gt;</span><span>&nbsp;</span></li></ol></pre><p>&nbsp;strings.xml</p><pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;utf-8&quot;</span><span class="tag">?&gt;</span><span>&nbsp;</span></span></li><li><span class="tag">&lt;</span><span class="tag-name">resources</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">string</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;planet_prompt&quot;</span><span class="tag">&gt;</span><span>你来自的省份是：</span><span class="tag">&lt;/</span><span class="tag-name">string</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">string</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;app_name&quot;</span><span class="tag">&gt;</span><span>测试Spinner</span><span class="tag">&lt;/</span><span class="tag-name">string</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span class="tag">&lt;/</span><span class="tag-name">resources</span><span class="tag">&gt;</span><span>&nbsp;</span></li></ol></pre><p>效果图：</p><br /><p>&nbsp;<img class="insertimage" src="attachment.php?fid=58" border="0" width="335" height="215" /><img class="insertimage" src="attachment.php?fid=59" border="0" width="331" height="432" /></p><p>②在XML文件中定义列表的数据</p><p>具体的例子如下：</p><p>MainActivity.java</p><ol class="dp-j"><li class="alt"><span><span class="keyword">package</span><span>&nbsp;com.<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.spinner; &nbsp;</span></span></li><li><span>&nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.app.Activity; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.os.Bundle; &nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;android.view.View; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.AdapterView; &nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;android.widget.AdapterView.OnItemSelectedListener; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.ArrayAdapter; &nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;android.widget.Spinner; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.Toast; &nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;MainActivity&nbsp;</span><span class="keyword">extends</span><span>&nbsp;Activity&nbsp;&#123; &nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;onCreate(Bundle&nbsp;savedInstanceState)&nbsp;&#123; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">super</span><span>.onCreate(savedInstanceState); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.main); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Spinner&nbsp;spinner&nbsp;=&nbsp;(Spinner)&nbsp;findViewById(R.id.spinner); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ArrayAdapter&lt;CharSequence&gt;&nbsp;adapter&nbsp;=&nbsp;ArrayAdapter.createFromResource( &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>,&nbsp;R.array.province, &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.R.layout.simple_spinner_item); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//调用setDropDownViewResource方法，以XML的方式定义下拉菜单要显示的样式 </span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adapter.setDropDownViewResource(<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.R.layout.simple_spinner_dropdown_item); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//为spinner设置适配器 </span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spinner.setAdapter(adapter); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spinner.setOnItemSelectedListener(</span><span class="keyword">new</span><span>&nbsp;MyOnItemSelectedListener()); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;MyOnItemSelectedListener&nbsp;</span><span class="keyword">implements</span><span>&nbsp;OnItemSelectedListener&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;onItemSelected(AdapterView&lt;?&gt;&nbsp;parent,View&nbsp;view,&nbsp;</span><span class="keyword">int</span><span>&nbsp;pos,&nbsp;</span><span class="keyword">long</span><span>&nbsp;id)&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Toast.makeText(parent.getContext(),&nbsp;</span><span class="string">&quot;你来自的省份是：&nbsp;&quot;</span><span>&nbsp;+ &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent.getItemAtPosition(pos).toString(),&nbsp;Toast.LENGTH_LONG).show();&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;onNothingSelected(AdapterView&lt;?&gt;&nbsp;parent)&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;</span></li><li class="alt"><span>&#125;&nbsp;</span></li></ol><pre class="alt"><span>&nbsp;<p>main.xml</p><pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;utf-8&quot;</span><span class="tag">?&gt;</span><span>&nbsp;</span></span></li><li><span class="tag">&lt;</span><span class="tag-name">LinearLayout</span><span>&nbsp;</span><span class="attribute">xmlns:<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a></span><span>=</span><span class="attribute-value">&quot;http://schemas.android.com/apk/res/android&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:orientation</span><span>=</span><span class="attribute-value">&quot;vertical&quot;</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:padding</span><span>=</span><span class="attribute-value">&quot;10dip&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">TextView</span><span>&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:id</span><span>=</span><span class="attribute-value">&quot;@+id/text&quot;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_marginTop</span><span>=</span><span class="attribute-value">&quot;10dip&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:text</span><span>=</span><span class="attribute-value">&quot;@string/planet_prompt&quot;</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">Spinner</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:id</span><span>=</span><span class="attribute-value">&quot;@+id/spinner&quot;</span><span>&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:prompt</span><span>=</span><span class="attribute-value">&quot;@string/planet_prompt&quot;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></li><li class="alt"><span class="tag">&lt;/</span><span class="tag-name">LinearLayout</span><span class="tag">&gt;</span><span>&nbsp;</span></li></ol></pre><p>strings.xml</p><pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;utf-8&quot;</span><span class="tag">?&gt;</span><span>&nbsp;</span></span></li><li><span class="tag">&lt;</span><span class="tag-name">resources</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">string</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;planet_prompt&quot;</span><span class="tag">&gt;</span><span>你来自的省份是</span><span class="tag">&lt;/</span><span class="tag-name">string</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">string</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;app_name&quot;</span><span class="tag">&gt;</span><span>测试Spinner</span><span class="tag">&lt;/</span><span class="tag-name">string</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">string-array</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;province&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">item</span><span class="tag">&gt;</span><span>广东</span><span class="tag">&lt;/</span><span class="tag-name">item</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">item</span><span class="tag">&gt;</span><span>广西</span><span class="tag">&lt;/</span><span class="tag-name">item</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">item</span><span class="tag">&gt;</span><span>湖南</span><span class="tag">&lt;/</span><span class="tag-name">item</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">item</span><span class="tag">&gt;</span><span>河南</span><span class="tag">&lt;/</span><span class="tag-name">item</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">item</span><span class="tag">&gt;</span><span>福建</span><span class="tag">&lt;/</span><span class="tag-name">item</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">string-array</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span class="tag">&lt;/</span><span class="tag-name">resources</span><span class="tag">&gt;</span><span>&nbsp;</span></li></ol></pre><p>效果图：</p><p><img class="insertimage" src="attachment.php?fid=60" border="0" width="332" height="432" /></p><p>&nbsp;二.AutoCompleteTextView简介</p><p>　&nbsp; 我们平常上网的时候经常会用到Google或百度，在输入框中输入类似&rdquo;51CTO&ldquo;，和51CTO相关的信息就会被列出来，供用户选择，非常方便。这种效果在<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>中是用AutoCompleteTextView实现的。在AutoCompleteTextView中，主要是设置想显示资源的适配器(Adapter)。</p><p>&nbsp;&nbsp;&nbsp; AutoCompleteTextView有三个重要的方法clearListSelection()：清除选中的列表项、dismissDropDown()：如果存在关闭下拉菜单、getAdapter()：获取适配器。</p><p>具体的例子如下：</p><p>MainActivity.java</p><pre><ol class="dp-j"><li class="alt"><span><span class="keyword">package</span><span>&nbsp;com.<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.autocomplete; &nbsp;</span></span></li><li><span>&nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.app.Activity; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.os.Bundle; &nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;android.widget.ArrayAdapter; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.AutoCompleteTextView; &nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;MainActivity&nbsp;</span><span class="keyword">extends</span><span>&nbsp;Activity&nbsp;&#123; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;AutoCompleteTextView&nbsp;atv; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//创建字符串数组 </span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">final</span><span>&nbsp;String[]&nbsp;strs&nbsp;=&nbsp;&#123;</span><span class="string">&quot;an&quot;</span><span>,&nbsp;</span><span class="string">&quot;and&quot;</span><span>,&nbsp;</span><span class="string">&quot;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>&quot;</span><span>,&nbsp;</span><span class="string">&quot;abc&quot;</span><span>,</span><span class="string">&quot;abcdef&quot;</span><span>&nbsp;&#125;; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;onCreate(Bundle&nbsp;savedInstanceState)&nbsp;&#123; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">super</span><span>.onCreate(savedInstanceState); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.main); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;atv&nbsp;=&nbsp;(AutoCompleteTextView)&nbsp;findViewById(R.id.AutoCompleteTextView1); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//创建适配器 </span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ArrayAdapter&lt;String&gt;&nbsp;adapter&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;ArrayAdapter&lt;String&gt;(</span><span class="keyword">this</span><span>,&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.R.layout.simple_dropdown_item_1line,&nbsp;strs); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//为AutoCompleteTextView设置适配器 </span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;atv.setAdapter(adapter); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;</span></li><li class="alt"><span>&#125;&nbsp;</span></li></ol></pre><p>main.xml</p><pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;utf-8&quot;</span><span class="tag">?&gt;</span><span>&nbsp;</span></span></li><li><span class="tag">&lt;</span><span class="tag-name">LinearLayout</span><span>&nbsp;</span><span class="attribute">xmlns:<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a></span><span>=</span><span class="attribute-value">&quot;http://schemas.android.com/apk/res/android&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:orientation</span><span>=</span><span class="attribute-value">&quot;vertical&quot;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">TextView</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:text</span><span>=</span><span class="attribute-value">&quot;自动完成文本框&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">AutoCompleteTextView</span><span>&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:id</span><span>=</span><span class="attribute-value">&quot;@+id/AutoCompleteTextView1&quot;</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></li><li class="alt"><span class="tag">&lt;/</span><span class="tag-name">LinearLayout</span><span class="tag">&gt;</span><span>&nbsp;</span></li></ol></pre><p>效果图：</p><p><img class="insertimage" src="attachment.php?fid=61" border="0" width="333" height="335" /></p></span></pre></span></pre></div></span></pre></div><br/>Tags - <a href="http://www.hihebei.com/go.php/tags/android/" rel="tag">android</a> , <a href="http://www.hihebei.com/go.php/tags/%25E5%25BC%2580%25E5%258F%2591%25E6%2595%2599%25E7%25A8%258B/" rel="tag">开发教程</a>
]]>
</description>
</item><item>
<link>http://www.hihebei.com/read.php/31.htm</link>
<title><![CDATA[Android访问php webservice简单一例]]></title> 
<author>hihebei &lt;admin@yourname.com&gt;</author>
<category><![CDATA[Android]]></category>
<pubDate>Sun, 12 Feb 2012 15:59:01 +0000</pubDate> 
<guid>http://www.hihebei.com/read.php/31.htm</guid> 
<description>
<![CDATA[ 
	<p>如果是PHP做的服务端,要用<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>去访问,如何办?当然可以用REST,但也可以用点笨的方法,比如PHP的服务端可以用JSON和XML提供返回的数据,而android端则可以用APACHE的httpclient去访问.</p><p>下面是一个例子,假设数据表中users表有如下字段(mysql):</p><p>idusers,UserName,FullName,加点数据.然后在服务端PHP,建立一个</p><table border="0" width="97%" align="center"><tbody><tr><td colspan="3"></td></tr></tbody></table><p></p><p>webservice1.php,作用是直接返回服务端数据库的数据,如下:</p><ol><li><span><span>&lt;?php&nbsp; &nbsp;&nbsp;</span></span></li><li><span class="keyword"><strong><span style="color: #7f0055">if</span></strong></span><span>(isset($_GET[</span><span class="string"><span style="color: #0000ff">'user'</span></span><span>])&nbsp;&amp;&amp;&nbsp;intval($_GET[</span><span class="string"><span style="color: #0000ff">'user'</span></span><span>]))&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$format&nbsp;=&nbsp;strtolower($_GET[</span><span class="string"><span style="color: #0000ff">'format'</span></span><span>])&nbsp;==&nbsp;</span><span class="string"><span style="color: #0000ff">'json'</span></span><span>&nbsp;?&nbsp;</span><span class="string"><span style="color: #0000ff">'json'</span></span><span>&nbsp;:&nbsp;</span><span class="string"><span style="color: #0000ff">'xml'</span></span><span>;&nbsp;</span><span class="comment"><span style="color: #008200">//xml&nbsp;is&nbsp;the&nbsp;default </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;$user_id&nbsp;=&nbsp;intval($_GET[</span><span class="string"><span style="color: #0000ff">'user'</span></span><span>]);&nbsp;</span><span class="comment"><span style="color: #008200">//no&nbsp;default </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">/*&nbsp;连接数据库*/</span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;$link&nbsp;=&nbsp;mysql_connect(</span><span class="string"><span style="color: #0000ff">'localhost'</span></span><span>,</span><span class="string"><span style="color: #0000ff">'root'</span></span><span>,</span><span class="string"><span style="color: #0000ff">'xxxxx'</span></span><span>)&nbsp;or&nbsp;die(</span><span class="string"><span style="color: #0000ff">'Cannot&nbsp;connect&nbsp;to&nbsp;the&nbsp;DB'</span></span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;mysql_select_db(</span><span class="string"><span style="color: #0000ff">'json<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>'</span></span><span>,$link)&nbsp;or&nbsp;die(</span><span class="string"><span style="color: #0000ff">'Cannot&nbsp;select&nbsp;the&nbsp;DB'</span></span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$query&nbsp;=&nbsp;</span><span class="string"><span style="color: #0000ff">&quot;SELECT&nbsp;*&nbsp;FROM&nbsp;`users`;&quot;</span></span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;$result&nbsp;=&nbsp;mysql_query($query,$link)&nbsp;or&nbsp;die(</span><span class="string"><span style="color: #0000ff">'Errant&nbsp;query:&nbsp;&nbsp;'</span></span><span>.$query); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;$posts&nbsp;=&nbsp;array(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">if</span></strong></span><span>(mysql_num_rows($result))&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">while</span></strong></span><span>($post&nbsp;=&nbsp;mysql_fetch_assoc($result))&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$posts[]&nbsp;=&nbsp;array(</span><span class="string"><span style="color: #0000ff">'post'</span></span><span>=&gt;$post); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&#125; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">/*&nbsp;json格式*/</span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">if</span></strong></span><span>($format&nbsp;==&nbsp;</span><span class="string"><span style="color: #0000ff">'json'</span></span><span>)&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;header(</span><span class="string"><span style="color: #0000ff">'Content-type:&nbsp;application/json'</span></span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;json_encode(array(</span><span class="string"><span style="color: #0000ff">'posts'</span></span><span>=&gt;$posts)); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&#125; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">else</span></strong></span><span>&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;header(</span><span class="string"><span style="color: #0000ff">'Content-type:&nbsp;text/xml'</span></span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span class="string"><span style="color: #0000ff">'&lt;posts&gt;'</span></span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;foreach($posts&nbsp;as&nbsp;$index&nbsp;=&gt;&nbsp;$post)&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">if</span></strong></span><span>(is_array($post))&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach($post&nbsp;as&nbsp;$key&nbsp;=&gt;&nbsp;$value)&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span class="string"><span style="color: #0000ff">'&lt;'</span></span><span>,$key,</span><span class="string"><span style="color: #0000ff">'&gt;'</span></span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">if</span></strong></span><span>(is_array($value))&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach($value&nbsp;as&nbsp;$tag&nbsp;=&gt;&nbsp;$val)&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span class="string"><span style="color: #0000ff">'&lt;'</span></span><span>,$tag,</span><span class="string"><span style="color: #0000ff">'&gt;'</span></span><span>,htmlentities($val),</span><span class="string"><span style="color: #0000ff">'&lt;/'</span></span><span>,$tag,</span><span class="string"><span style="color: #0000ff">'&gt;'</span></span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span class="string"><span style="color: #0000ff">'&lt;/'</span></span><span>,$key,</span><span class="string"><span style="color: #0000ff">'&gt;'</span></span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span class="string"><span style="color: #0000ff">'&lt;/posts&gt;'</span></span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&#125; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&#125; &nbsp;&nbsp;</span></li><li><span>&nbsp;?&gt;&nbsp;&nbsp;&nbsp;</span></li></ol><p>则可以把数据表输出为JSON或者XML格式了.客户端的<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>调用: </p><ol><li><span class="keyword"><strong><span style="color: #7f0055">try</span></strong></span><span>&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpParams&nbsp;httpParams&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;BasicHttpParams(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpConnectionParams.setConnectionTimeout(httpParams, &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIMEOUT_MILLISEC); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpConnectionParams.setSoTimeout(httpParams,&nbsp;TIMEOUT_MILLISEC); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpParams&nbsp;p&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;BasicHttpParams(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.setParameter(</span><span class="string"><span style="color: #0000ff">&quot;user&quot;</span></span><span>,&nbsp;</span><span class="string"><span style="color: #0000ff">&quot;1&quot;</span></span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpClient&nbsp;httpclient&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;DefaultHttpClient(p); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;url&nbsp;=&nbsp;</span><span class="string"><span style="color: #0000ff">&quot;http://10.0.2.2:8082/myphp/phpWebservice/webservice1.php?user=1&amp;format=json&quot;</span></span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpPost&nbsp;httppost&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;HttpPost(url); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">try</span></strong></span><span>&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log.i(getClass().getSimpleName(),&nbsp;</span><span class="string"><span style="color: #0000ff">&quot;send&nbsp;&nbsp;task&nbsp;-&nbsp;start&quot;</span></span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;NameValuePair&gt;&nbsp;nameValuePairs&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;ArrayList&lt;NameValuePair&gt;( &nbsp;&nbsp;</span></li><li><span>&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 class="number"><span style="color: #c00000">2</span></span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nameValuePairs.add(</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;BasicNameValuePair(</span><span class="string"><span style="color: #0000ff">&quot;user&quot;</span></span><span>,&nbsp;</span><span class="string"><span style="color: #0000ff">&quot;1&quot;</span></span><span>)); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;httppost.setEntity(</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;UrlEncodedFormEntity(nameValuePairs)); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResponseHandler&lt;String&gt;&nbsp;responseHandler&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;BasicResponseHandler(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;responseBody&nbsp;=&nbsp;httpclient.execute(httppost, &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;responseHandler); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #008200">//&nbsp;解析JSON返回的&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JSONObject&nbsp;json&nbsp;=&nbsp;new&nbsp;JSONObject(responseBody); </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JSONArray&nbsp;jArray&nbsp;=&nbsp;json.getJSONArray(</span><span class="string"><span style="color: #0000ff">&quot;posts&quot;</span></span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ArrayList&lt;HashMap&lt;String,&nbsp;String&gt;&gt;&nbsp;mylist&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;ArrayList&lt;HashMap&lt;String,&nbsp;String&gt;&gt;(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">for</span></strong></span><span>&nbsp;(</span><span class="keyword"><strong><span style="color: #7f0055">int</span></strong></span><span>&nbsp;i&nbsp;=&nbsp;</span><span class="number"><span style="color: #c00000">0</span></span><span>;&nbsp;i&nbsp;&lt;&nbsp;jArray.length();&nbsp;i++)&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HashMap&lt;String,&nbsp;String&gt;&nbsp;map&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;HashMap&lt;String,&nbsp;String&gt;(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JSONObject&nbsp;e&nbsp;=&nbsp;jArray.getJSONObject(i); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;s&nbsp;=&nbsp;e.getString(</span><span class="string"><span style="color: #0000ff">&quot;post&quot;</span></span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JSONObject&nbsp;jObject&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;JSONObject(s); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(</span><span class="string"><span style="color: #0000ff">&quot;idusers&quot;</span></span><span>,&nbsp;jObject.getString(</span><span class="string"><span style="color: #0000ff">&quot;idusers&quot;</span></span><span>)); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(</span><span class="string"><span style="color: #0000ff">&quot;UserName&quot;</span></span><span>,&nbsp;jObject.getString(</span><span class="string"><span style="color: #0000ff">&quot;UserName&quot;</span></span><span>)); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(</span><span class="string"><span style="color: #0000ff">&quot;FullName&quot;</span></span><span>,&nbsp;jObject.getString(</span><span class="string"><span style="color: #0000ff">&quot;FullName&quot;</span></span><span>)); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mylist.add(map); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Toast.makeText(</span><span class="keyword"><strong><span style="color: #7f0055">this</span></strong></span><span>,&nbsp;responseBody,&nbsp;Toast.LENGTH_LONG).show();&nbsp;</span></li></ol><span><p>再搞个webservice2.php,该文件用来把客户端传送过去的JSON数据保存 </p><ol><li><span>&lt;?php&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>$json&nbsp;=&nbsp;file_get_contents(</span><span class="string"><span style="color: #0000ff">'php://input'</span></span><span>); &nbsp;&nbsp;</span></li><li><span>$obj&nbsp;=&nbsp;json_decode($json); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span class="comment"><span style="color: #008200">//echo&nbsp;$json; </span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span class="comment"><span style="color: #008200">//保存数据库 </span></span><span>&nbsp;&nbsp;</span></li><li><span>$con&nbsp;=&nbsp;mysql_connect(</span><span class="string"><span style="color: #0000ff">'localhost'</span></span><span>,</span><span class="string"><span style="color: #0000ff">'root'</span></span><span>,</span><span class="string"><span style="color: #0000ff">'XXX'</span></span><span>)&nbsp;or&nbsp;die(</span><span class="string"><span style="color: #0000ff">'Cannot&nbsp;connect&nbsp;to&nbsp;the&nbsp;DB'</span></span><span>); &nbsp;&nbsp;</span></li><li><span>mysql_select_db(</span><span class="string"><span style="color: #0000ff">'json<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>'</span></span><span>,$con); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;mysql_query(&quot;INSERT&nbsp;INTO&nbsp;`users`&nbsp;(UserName,&nbsp;FullName) &nbsp;&nbsp;</span></li><li><span>VALUES&nbsp;(</span><span class="string"><span style="color: #0000ff">'&quot;.$obj-&gt;&#123;'</span></span><span>UserName</span><span class="string"><span style="color: #0000ff">'&#125;.&quot;'</span></span><span>,&nbsp;</span><span class="string"><span style="color: #0000ff">'&quot;.$obj-&gt;&#123;'</span></span><span>FullName</span><span class="string"><span style="color: #0000ff">'&#125;.&quot;'</span></span><span>)&quot;); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>mysql_close($con); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;$posts&nbsp;=&nbsp;array(</span><span class="number"><span style="color: #c00000">1</span></span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;header(</span><span class="string"><span style="color: #0000ff">'Content-type:&nbsp;application/json'</span></span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;json_encode(array(</span><span class="string"><span style="color: #0000ff">'posts'</span></span><span>=&gt;$posts)); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>?&gt;&nbsp;&nbsp;</span></li></ol><p>而<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>端的,可以构造JSON,发送到webservice2.php </p><ol><li><span><span class="keyword"><strong><span style="color: #7f0055">try</span></strong></span><span>&nbsp;&#123; &nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JSONObject&nbsp;json&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;JSONObject(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;json.put(</span><span class="string"><span style="color: #0000ff">&quot;UserName&quot;</span></span><span>,&nbsp;</span><span class="string"><span style="color: #0000ff">&quot;test2&quot;</span></span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;json.put(</span><span class="string"><span style="color: #0000ff">&quot;FullName&quot;</span></span><span>,&nbsp;</span><span class="string"><span style="color: #0000ff">&quot;1234567&quot;</span></span><span>); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpParams&nbsp;httpParams&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;BasicHttpParams(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpConnectionParams.setConnectionTimeout(httpParams, &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIMEOUT_MILLISEC); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpConnectionParams.setSoTimeout(httpParams,&nbsp;TIMEOUT_MILLISEC); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpClient&nbsp;client&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;DefaultHttpClient(httpParams); &nbsp;&nbsp;</span></li><li><span>&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;String&nbsp;url&nbsp;=&nbsp;</span><span class="string"><span style="color: #0000ff">&quot;http://10.0.2.2:8082//myphp/phpWebservice/webservice2.php&quot;</span></span><span>; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpPost&nbsp;request&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;HttpPost(url); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.setEntity(</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;ByteArrayEntity(json.toString().getBytes( &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string"><span style="color: #0000ff">&quot;UTF8&quot;</span></span><span>))); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.setHeader(</span><span class="string"><span style="color: #0000ff">&quot;json&quot;</span></span><span>,&nbsp;json.toString()); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpResponse&nbsp;response&nbsp;=&nbsp;client.execute(request); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpEntity&nbsp;entity&nbsp;=&nbsp;response.getEntity(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">if</span></strong></span><span>&nbsp;(entity&nbsp;!=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">null</span></strong></span><span>)&nbsp;&#123; &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStream&nbsp;instream&nbsp;=&nbsp;entity.getContent(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;result&nbsp;=&nbsp;RestClient.convertStreamToString(instream); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log.i(</span><span class="string"><span style="color: #0000ff">&quot;Read&nbsp;from&nbsp;server&quot;</span></span><span>,&nbsp;result); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Toast.makeText(</span><span class="keyword"><strong><span style="color: #7f0055">this</span></strong></span><span>,&nbsp;&nbsp;result, &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Toast.LENGTH_LONG).show(); &nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span></li></ol><p>这样,就可以把<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>发送的数据保存到服务端了。</p></span><br/>Tags - <a href="http://www.hihebei.com/go.php/tags/android/" rel="tag">android</a> , <a href="http://www.hihebei.com/go.php/tags/%25E5%25BC%2580%25E5%258F%2591%25E6%2595%2599%25E7%25A8%258B/" rel="tag">开发教程</a> , <a href="http://www.hihebei.com/go.php/tags/php/" rel="tag">php</a> , <a href="http://www.hihebei.com/go.php/tags/%25E6%259C%258D%25E5%258A%25A1%25E5%2599%25A8/" rel="tag">服务器</a>
]]>
</description>
</item><item>
<link>http://www.hihebei.com/read.php/30.htm</link>
<title><![CDATA[Android开发教程：HTTP超时机制]]></title> 
<author>hihebei &lt;admin@yourname.com&gt;</author>
<category><![CDATA[Android]]></category>
<pubDate>Sun, 12 Feb 2012 15:56:22 +0000</pubDate> 
<guid>http://www.hihebei.com/read.php/30.htm</guid> 
<description>
<![CDATA[ 
	<p>由于<a href="http://www.linuxidc.com/mobile/index.htm" title="手机">手机</a>端应用的响应，与当时的无线通信网络状况有很大的关联。而通信网络往往具有不稳定，延迟长的特点。所以，在我们的应用程序中，当我们请求网络的时候，超时机制的应用就显得特别重要。 </p><p>超时机制主要有： </p><p>1、HTTP请求超时机制 </p><p>2、Socket通信超时机制 </p><p>HTTP请求超时机制 </p><ol><li><span><span class="keyword"><strong><span style="color: #7f0055">public</span></strong></span><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">static</span></strong></span><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">void</span></strong></span><span>&nbsp;main(String[]&nbsp;args)&#123; &nbsp;&nbsp;</span></span> </li><li><span>&nbsp;&nbsp;</span> </li><li><span class="keyword"><strong><span style="color: #7f0055">long</span></strong></span><span>&nbsp;a=System.currentTimeMillis(); &nbsp;&nbsp;</span> </li><li><span class="keyword"><strong><span style="color: #7f0055">try</span></strong></span><span>&#123; &nbsp;&nbsp;</span> </li><li><span>URL&nbsp;myurl&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;URL(&ldquo;http:</span><span class="comment"><span style="color: #008200">//www.linuxidc.com&rdquo;); </span></span><span>&nbsp;&nbsp;</span> </li><li><span>URLConnection&nbsp;myurlcon&nbsp;=&nbsp;myurl.openConnection(); &nbsp;&nbsp;</span> </li><li><span>myurlcon.setConnectTimeout(</span><span class="number"><span style="color: #c00000">1000</span></span><span>); &nbsp;&nbsp;</span> </li><li><span>myurlcon.setReadTimeout(</span><span class="number"><span style="color: #c00000">1000</span></span><span>); &nbsp;&nbsp;</span> </li><li><span>BufferedReader&nbsp;in&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;BufferedReader(</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;InputStreamReader(myurlcon.getInputStream(),&rdquo;UTF-</span><span class="number"><span style="color: #c00000">8</span></span><span>&Prime;)); &nbsp;&nbsp;</span> </li><li><span>String&nbsp;inputLine; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&nbsp;</span> </li><li><span class="keyword"><strong><span style="color: #7f0055">while</span></strong></span><span>&nbsp;((inputLine&nbsp;=&nbsp;in.readLine())&nbsp;!=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">null</span></strong></span><span>)&#123; &nbsp;&nbsp;</span> </li><li><span>System.out.println(inputLine); &nbsp;&nbsp;</span> </li><li><span>in.close(); &nbsp;&nbsp;</span> </li><li><span>System.out.println(System.currentTimeMillis()-a); &nbsp;&nbsp;</span> </li><li><span>&#125; &nbsp;&nbsp;</span> </li><li><span>&#125;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">catch</span></strong></span><span>&nbsp;(MalformedURLException&nbsp;e)&nbsp;&#123; &nbsp;&nbsp;</span> </li><li><span>e.printStackTrace(); &nbsp;&nbsp;</span> </li><li><span>&#125;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">catch</span></strong></span><span>&nbsp;(UnsupportedEncodingException&nbsp;e)&nbsp;&#123; &nbsp;&nbsp;</span> </li><li><span>e.printStackTrace(); &nbsp;&nbsp;</span> </li><li><span>&#125;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">catch</span></strong></span><span>&nbsp;(IOException&nbsp;e)&nbsp;&#123; &nbsp;&nbsp;</span> </li><li><span>e.printStackTrace(); &nbsp;&nbsp;</span> </li><li><span>&#125; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&nbsp;</span> </li><li><span>&#125; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&nbsp;</span> </li><li><span>&nbsp;&nbsp;</span> </li><li><span>如果超时&nbsp;将&nbsp;抛出&nbsp;以下&nbsp;异常 &nbsp;&nbsp;</span> </li><li><span>&nbsp;&nbsp;</span> </li><li><span>java.net.SocketTimeoutException:&nbsp;Read&nbsp;timed&nbsp;out &nbsp;&nbsp;</span> </li><li><span>at&nbsp;java.net.SocketInputStream.socketRead0(Native&nbsp;Method) &nbsp;&nbsp;</span> </li><li><span>at&nbsp;java.net.SocketInputStream.read(SocketInputStream.java:</span><span class="number"><span style="color: #c00000">129</span></span><span>) &nbsp;&nbsp;</span> </li><li><span>at&nbsp;java.io.BufferedInputStream.fill(BufferedInputStream.java:</span><span class="number"><span style="color: #c00000">218</span></span><span>) &nbsp;&nbsp;</span> </li><li><span>at&nbsp;java.io.BufferedInputStream.read1(BufferedInputStream.java:</span><span class="number"><span style="color: #c00000">256</span></span><span>) &nbsp;&nbsp;</span> </li><li><span>at&nbsp;java.io.BufferedInputStream.read(BufferedInputStream.java:</span><span class="number"><span style="color: #c00000">313</span></span><span>) &nbsp;&nbsp;</span> </li><li><span>at&nbsp;sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:</span><span class="number"><span style="color: #c00000">606</span></span><span>) &nbsp;&nbsp;</span> </li><li><span>at&nbsp;sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:</span><span class="number"><span style="color: #c00000">554</span></span><span>) &nbsp;&nbsp;</span> </li><li><span>at&nbsp;sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:</span><span class="number"><span style="color: #c00000">940</span></span><span>) &nbsp;&nbsp;</span> </li><li><span>at&nbsp;com.Test.main(Test.java:</span><span class="number"><span style="color: #c00000">52</span></span><span>)</span></li></ol><span><p>补充内容：</p><p>在<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>项目中，如果有用到http请求，就必须也应该加上http请求的超时管理，异常管理，项目中遇到这个需求，google上搜索到了一大堆，但是写的都比较简单，做个demo还行，用在项目中还是不够完善。自己写了一个例子，有不完善之处，欢迎大家指正。</p><p>　　需要注意的地方：有三个方面</p><p>　　如何控制超时机制</p><p>　　如何处理异常</p><div><table border="0" width="97%" align="center"><tbody><tr><td colspan="3"></td></tr></tbody></table></div><p></p><p>　　如何处理请求错误的</p><div><ol><li><span><span class="keyword"><strong><span style="color: #7f0055">private</span></strong></span><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">class</span></strong></span><span>&nbsp;XmlAsyncLoader&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">extends</span></strong></span><span>&nbsp;XmlResourceRequest&nbsp;&#123; &nbsp;&nbsp;</span></span> </li><li><span>&nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">private</span></strong></span><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">boolean</span></strong></span><span>&nbsp;mIsCancle&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">false</span></strong></span><span>; &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">private</span></strong></span><span>&nbsp;HttpGet&nbsp;mGet; &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">private</span></strong></span><span>&nbsp;HttpClient&nbsp;mHttp; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">public</span></strong></span><span>&nbsp;XmlAsyncLoader(MxActivity&lt;?&gt;&nbsp;activity,&nbsp;String&nbsp;url) &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">throws</span></strong></span><span>&nbsp;MalformedURLException&nbsp;&#123; &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">super</span></strong></span><span>(activity,&nbsp;url); &nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="annotation"><span style="color: #646464">@Override</span></span><span>&nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">protected</span></strong></span><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">void</span></strong></span><span>&nbsp;doTaskInBackground()&nbsp;&#123; &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="comment"><span style="color: #008200">//&nbsp;请求数据 </span></span><span>&nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">if</span></strong></span><span>&nbsp;(mUrl.toLowerCase().startsWith(</span><span class="string"><span style="color: #0000ff">&quot;http://&quot;</span></span><span>))&nbsp;&#123; &nbsp;&nbsp;</span> </li><li><span>&nbsp;mGet&nbsp;=&nbsp;initHttpGet(mUrl); &nbsp;&nbsp;</span> </li><li><span>&nbsp;mHttp&nbsp;=&nbsp;initHttp(); &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">try</span></strong></span><span>&nbsp;&#123; &nbsp;&nbsp;</span> </li><li><span>&nbsp;HttpResponse&nbsp;response&nbsp;=&nbsp;mHttp.execute(mGet); &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">if</span></strong></span><span>&nbsp;(mIsCancle)&nbsp;&#123; &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">return</span></strong></span><span>; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125; &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">if</span></strong></span><span>&nbsp;(response&nbsp;!=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">null</span></strong></span><span>)&nbsp;&#123; &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">if</span></strong></span><span>(response.getStatusLine().getStatusCode()!=HttpStatus.SC_OK)&#123; &nbsp;&nbsp;</span> </li><li><span>&nbsp;onResponseError(</span><span class="string"><span style="color: #0000ff">&quot;network&nbsp;error&quot;</span></span><span>); &nbsp;&nbsp;</span> </li><li><span>&nbsp;Log.v(TAG,&nbsp;</span><span class="string"><span style="color: #0000ff">&quot;the&nbsp;code&nbsp;is&nbsp;:&quot;</span></span><span>+response.getStatusLine().getStatusCode()); &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">return</span></strong></span><span>; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125; &nbsp;&nbsp;</span> </li><li><span>&nbsp;notifyUpdateProgress(</span><span class="number"><span style="color: #c00000">70</span></span><span>); &nbsp;&nbsp;</span> </li><li><span>&nbsp;Document&nbsp;doc&nbsp;=&nbsp;getDocumet(response); &nbsp;&nbsp;</span> </li><li><span>&nbsp;Element&nbsp;root&nbsp;=&nbsp;doc.getDocumentElement(); &nbsp;&nbsp;</span> </li><li><span>&nbsp;NodeList&nbsp;appList&nbsp;=&nbsp;root &nbsp;&nbsp;</span> </li><li><span>&nbsp;.getElementsByTagName(Item_ELEMENT_NAME); &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">final</span></strong></span><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">int</span></strong></span><span>&nbsp;len&nbsp;=&nbsp;appList.getLength(); &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">if</span></strong></span><span>&nbsp;(len&nbsp;&lt;=&nbsp;</span><span class="number"><span style="color: #c00000">0</span></span><span>)&nbsp;&#123;</span><span class="comment"><span style="color: #008200">//&nbsp;没有items </span></span><span>&nbsp;&nbsp;</span> </li><li><span>&nbsp;onFoundNoItems(); &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">return</span></strong></span><span>; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125; &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">for</span></strong></span><span>&nbsp;(</span><span class="keyword"><strong><span style="color: #7f0055">int</span></strong></span><span>&nbsp;i&nbsp;=&nbsp;</span><span class="number"><span style="color: #c00000">0</span></span><span>;&nbsp;i&nbsp;&lt;&nbsp;len;&nbsp;i++)&nbsp;&#123; &nbsp;&nbsp;</span> </li><li><span>&nbsp;Element&nbsp;item&nbsp;=&nbsp;(Element)&nbsp;appList.item(i); &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">if</span></strong></span><span>&nbsp;(item.getNodeType()&nbsp;==&nbsp;Node.ELEMENT_NODE)&nbsp;&#123; &nbsp;&nbsp;</span> </li><li><span>&nbsp;HahaItemInfo&nbsp;info&nbsp;=&nbsp;createHahaItemIno(item); &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">if</span></strong></span><span>&nbsp;(mIsCancle)&#123; &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">return</span></strong></span><span>; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125; &nbsp;&nbsp;</span> </li><li><span>&nbsp;onFoundItem(info,&nbsp;</span><span class="number"><span style="color: #c00000">80</span></span><span>&nbsp;+&nbsp;</span><span class="number"><span style="color: #c00000">20</span></span><span>&nbsp;*&nbsp;(i&nbsp;+&nbsp;</span><span class="number"><span style="color: #c00000">1</span></span><span>)&nbsp;/&nbsp;len); &nbsp;&nbsp;</span> </li><li><span>&nbsp;addUrlToQueue(info.userIconUrl); &nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125;; &nbsp;&nbsp;</span> </li><li><span>&nbsp; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125;</span><span class="keyword"><strong><span style="color: #7f0055">catch</span></strong></span><span>(ConnectTimeoutException&nbsp;e)&#123; &nbsp;&nbsp;</span> </li><li><span>&nbsp;onResponseError(</span><span class="string"><span style="color: #0000ff">&quot;time&nbsp;out&quot;</span></span><span>); &nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">catch</span></strong></span><span>&nbsp;(ClientProtocolException&nbsp;e)&nbsp;&#123; &nbsp;&nbsp;</span> </li><li><span>&nbsp;--mCurrentPage; &nbsp;&nbsp;</span> </li><li><span>&nbsp;e.printStackTrace(); &nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">catch</span></strong></span><span>&nbsp;(IOException&nbsp;e)&nbsp;&#123; &nbsp;&nbsp;</span> </li><li><span>&nbsp;--mCurrentPage; &nbsp;&nbsp;</span> </li><li><span>&nbsp;e.printStackTrace(); &nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125;&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">catch</span></strong></span><span>&nbsp;(XmlPullParserException&nbsp;e)&nbsp;&#123; &nbsp;&nbsp;</span> </li><li><span>&nbsp;--mCurrentPage; &nbsp;&nbsp;</span> </li><li><span>&nbsp;e.printStackTrace(); &nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125;</span><span class="keyword"><strong><span style="color: #7f0055">finally</span></strong></span><span>&#123; &nbsp;&nbsp;</span> </li><li><span>&nbsp;notifyLoadFinish(); &nbsp;&nbsp;</span> </li><li><span>&nbsp;notifyLoadImages(); &nbsp;&nbsp;</span> </li><li><span>&nbsp;mHttp.getConnectionManager().shutdown(); &nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&nbsp;</span> </li><li><span>&nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">private</span></strong></span><span>&nbsp;HttpClient&nbsp;initHttp()&nbsp;&#123; &nbsp;&nbsp;</span> </li><li><span>&nbsp;HttpClient&nbsp;client&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;DefaultHttpClient(); &nbsp;&nbsp;</span> </li><li><span>&nbsp;client.getParams().setIntParameter( &nbsp;&nbsp;</span> </li><li><span>&nbsp;HttpConnectionParams.SO_TIMEOUT,&nbsp;TIME_OUT_DELAY);&nbsp;</span><span class="comment"><span style="color: #008200">//&nbsp;超时设置 </span></span><span>&nbsp;&nbsp;</span> </li><li><span>&nbsp;client.getParams().setIntParameter( &nbsp;&nbsp;</span> </li><li><span>&nbsp;HttpConnectionParams.CONNECTION_TIMEOUT,&nbsp;TIME_OUT_DELAY);</span><span class="comment"><span style="color: #008200">//&nbsp;连接超时 </span></span><span>&nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">return</span></strong></span><span>&nbsp;client; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">private</span></strong></span><span>&nbsp;HttpGet&nbsp;initHttpGet(String&nbsp;mUrl)&nbsp;&#123; &nbsp;&nbsp;</span> </li><li><span>&nbsp;HttpGet&nbsp;get&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">new</span></strong></span><span>&nbsp;HttpGet(mUrl); &nbsp;&nbsp;</span> </li><li><span>&nbsp;initHeader(get); &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">return</span></strong></span><span>&nbsp;get; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&nbsp;</span> </li><li><span>&nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="annotation"><span style="color: #646464">@Override</span></span><span>&nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">public</span></strong></span><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">boolean</span></strong></span><span>&nbsp;tryCancel()&nbsp;&#123; &nbsp;&nbsp;</span> </li><li><span>&nbsp;Log.i(TAG,&nbsp;</span><span class="string"><span style="color: #0000ff">&quot;tryCanle&nbsp;is&nbsp;working&quot;</span></span><span>); &nbsp;&nbsp;</span> </li><li><span>&nbsp;mGet.abort(); &nbsp;&nbsp;</span> </li><li><span>&nbsp;mIsCancle&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">true</span></strong></span><span>; &nbsp;&nbsp;</span> </li><li><span>&nbsp;mHttp.getConnectionManager().shutdown(); &nbsp;&nbsp;</span> </li><li><span>&nbsp;notifyLoadFinish(); &nbsp;&nbsp;</span> </li><li><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">return</span></strong></span><span>&nbsp;</span><span class="keyword"><strong><span style="color: #7f0055">true</span></strong></span><span>; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125; &nbsp;&nbsp;</span> </li><li><span>&nbsp;&nbsp;</span> </li><li><span>&nbsp;&#125;&nbsp;&nbsp;</span></li></ol></div><span><div id="content"><p>这是一个异步任务类，发送get请求请求数据，解析服务器的响应数据，同时通知ui线程更新ui</p><p>在<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>中，互联网交互的写法有很多，可以使用apache提供的包，也可以使用google提供的api，我不知道那种更好，只是习惯于使用</p><p>apache的api。</p><p>1. 设置超时机制</p><p>client.getParams().setIntParameter( HttpConnectionParams.SO_TIMEOUT, TIME_OUT_DELAY); // 超时设置 client.getParams().setIntParameter( HttpConnectionParams.CONNECTION_TIMEOUT, TIME_OUT_DELAY);// 连接超时</p><table border="0" width="97%" align="center"><tbody><tr><td colspan="3"></td></tr></tbody></table><p></p><p>这里设置了两种超时，第一种是请求超时，第二种时连接超时。</p><p>当向服务器发出请求后，请求和服务器建立socket连接，但是很长时间内都没有建立socket连接，这就时第一种请求超时，这种情况主要发生在请求了</p><p>一个不存在的服务器。超时之后，会抛出InterruptedIOException异常。</p><p>Timeout for blocking operations. The argument value is specified in milliseconds. An InterruptedIOException is thrown if this timeout expires.</p><p>客户端已经与服务器建立了socket连接，但是服务器并没有处理客户端的请求，没有相应服务器，这就是第二种连接超时。这中超时会抛出</p><p>ConnectTimeoutException异常，ConnectTimeoutException继承自InterruptedIOException，所以只要捕获ConnectTimeoutException 就可以了。</p><p>2. 分析一下请求的过程</p><p>　2.1　HttpResponse response = mHttp.execute(mGet);</p><p>执行请求方法，获取服务器响应，（这里有个不太成熟的看法，response不可能为null，还有待验证）。</p><p>2.2 获取请求响应码</p><p>if(response.getStatusLine().getStatusCode()!=HttpStatus.SC_OK)&#123; onResponseError(&quot;network error&quot;); Log.v(TAG, &quot;the code is :&quot;+response.getStatusLine().getStatusCode()); return; &#125;</p><p>　　即使连接上服务器，并且从服务器上获取了数据，也有可能时服务器返回的错误信息，因此也需要特殊处理。</p><p>2.3 异常处理</p><p>　　对于异常，不能简单的捕获就完事，例如上面的代码中，我请求第三页的数据，如果发生异常，请求不成功，那么我就需要让当前页数回滚，</p><p>如果成功了就不用回滚了，所以需要对异常进行处理</p><p>2.4 finally关键字</p><p>　　不管是请求成功，还是失败，都需要关闭链接。 </p></div></span></span>
]]>
</description>
</item><item>
<link>http://www.hihebei.com/read.php/29.htm</link>
<title><![CDATA[Android开发教程：仿通讯录ListView小例子]]></title> 
<author>hihebei &lt;admin@yourname.com&gt;</author>
<category><![CDATA[Android]]></category>
<pubDate>Sun, 12 Feb 2012 15:52:18 +0000</pubDate> 
<guid>http://www.hihebei.com/read.php/29.htm</guid> 
<description>
<![CDATA[ 
	<div id="content"><p>写这例子的初衷是想模仿通讯录列表，实现了一些效果，也没法做到100%相像，自己也认为还有一些不足（存在些内存上的浪费）。<br />这个阶段先这样了，代码量比较大，就不贴代码了，只上效果图。</p><p>源码下载地址：</p><p><strong>免费下载地址在</strong> <a href="http://linux.linuxidc.com/" target="_blank">http://linux.linuxidc.com/</a></p><table border="0" width="97%" align="center"><tbody><tr><td colspan="3"></td></tr></tbody></table><p></p><p><strong>用户名与密码都是</strong><a href="http://www.linuxidc.com/Linux/2012-01/52373.htm">www.linuxidc.com</a></p><p><strong>具体下载目录在</strong> /2012年资料/1月/26日/<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>开发教程：仿通讯录ListView小例子/</p><p>效果图如下: </p><p></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<img class="insertimage" src="attachment.php?fid=54" border="0" width="320" height="480" /><br /><img class="insertimage" src="attachment.php?fid=55" border="0" width="320" height="480" /><br /><img class="insertimage" src="attachment.php?fid=56" border="0" width="320" height="480" /> <br /><br /><br />1.实现根据字母进行分类。<br />2.实现快速滑动及修改快速滑动条的图标。<br />3.实现快速滑动时的字母提示。<br />4.实现快捷操作框及其的动画显示/隐藏，上箭头与下箭头的选择性显示及位置匹配。<br />5.顺便做了个自定义Dialog和完整的发送邮件的实现(主送、抄送、密送、附件、标题、正文)。</p><p>部分实现细节介绍：</p><p>1.快速滑动时的字母提示框</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 该显示组件为TextView，实例索引名为txtOverlay，执行WindowManager.addView(txtOverlay, layoutParams)后添加于WindowManager上。通过设置ListView.OnScrollListener监听到滚动时则将 txtOverlay设置可见性为View.VISIBLE，当滚动结束时可见性调为View.INVISIBLE。<br />&nbsp;&nbsp;&nbsp;&nbsp; 为了提升用户体验，避免在短时间内，用户再次拖动时字母提示框又执行显示和隐藏命令，将隐藏的操作设置在DisapearThread线程实例中，通过 handler.postDelayed(disapearThread, 1500)延时1.5秒后再执行字母提示框的隐藏。</p><p>2.快速滚动图标的修改</p><p>&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a> Api并未公开修改图标的接口，本处通过调用Java的反射机制修改了快速滚动的图标。替换代码见MainAct类中的changeFastScrollerDrawable()。<br />&nbsp;&nbsp;&nbsp; 补充：<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>对ListView设置了优化，对于少于4页内容的List即使设置了fastScrollEnabled=true也不会显示FastScroller。<br />&nbsp;&nbsp;&nbsp; 参考资料查看：&lt;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>_Source&gt;/frameworks/base/core/java/android/widget/FastScroller.java:其中常量MIN_PAGES及其相关。</p><p>3.获取List中&ldquo;咧牙&rdquo;ImageView在屏幕中的绝对位置</p><p>&nbsp;&nbsp;&nbsp; 代码如下：anchor为&ldquo;咧牙&rdquo;ImageView。</p><p></p><div class="dp-highlighter bg_java"><div class="bar"><div class="tools"><strong>[java]</strong> </div></div><ol class="dp-j"><li class="alt"><span><span class="keyword"><strong><span style="color: #006699">int</span></strong></span><span>[]&nbsp;location&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #006699">new</span></strong></span><span>&nbsp;</span><span class="keyword"><strong><span style="color: #006699">int</span></strong></span><span>[</span><span class="number"><span style="color: #c00000">2</span></span><span>];&nbsp;&nbsp;</span></span></li><li><span>anchor.getLocationOnScreen(location);&nbsp;&nbsp;</span></li><li class="alt"><span>Rect&nbsp;anchorRect&nbsp;=&nbsp;</span><span class="keyword"><strong><span style="color: #006699">new</span></strong></span><span>&nbsp;Rect(location[</span><span class="number"><span style="color: #c00000">0</span></span><span>],&nbsp;location[</span><span class="number"><span style="color: #c00000">1</span></span><span>],&nbsp;location[</span><span class="number"><span style="color: #c00000">0</span></span><span>]&nbsp;+&nbsp;anchor.getWidth(),&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;location[</span><span class="number"><span style="color: #c00000">1</span></span><span>]&nbsp;+&nbsp;anchor.getHeight());&nbsp;&nbsp;</span></li></ol></div><p></p><p>&nbsp;&nbsp;&nbsp;&nbsp; 这个步骤也是为上箭头与下箭头的自动选择做好铺垫。&nbsp;</p><p>4.为快捷按钮组成的LinearLayout设置反弹动画</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设置LinearLayout沿直线轨迹从从屏幕右边滑动到左边这个部分的动画定义文件是res/anim/anim_actionslayout.xml，代码如下：</p><p></p><div class="dp-highlighter bg_xhtml"><div class="bar"><div class="tools"><strong>[xhtml]</strong> </div></div><ol class="dp-xml"><li class="alt"><span><strong><span style="color: #993300"><span class="tag">&lt;?</span><span class="tag-name">xml</span></span></strong><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000">version</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff">&quot;1.0&quot;</span></span><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000">encoding</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff">&quot;UTF-8&quot;</span></span><span class="tag"><strong><span style="color: #993300">?&gt;</span></strong></span><span>&nbsp;&nbsp;</span></span></li><li><span class="comments"><span style="color: #008200">&lt;!--&nbsp;本文件指定了actionsLayout的出现动画。&nbsp;--&gt;</span></span><span>&nbsp;&nbsp;</span></li><li class="alt"><span class="comments"><span style="color: #008200">&lt;!--&nbsp;translate定义了垂直或水平方向或两者混合的一种运动。&nbsp;--&gt;</span></span><span>&nbsp;&nbsp;</span></li><li><span class="comments"><span style="color: #008200">&lt;!--&nbsp;formXDelta:赋值为浮点数或百分比。百分号后面'p'表示相对于父控件的相应位置。当只有百分号时表示相对于控件本身的位置。&nbsp;--&gt;</span></span><span>&nbsp;&nbsp;</span></li><li class="alt"><span class="comments"><span style="color: #008200">&lt;!--&nbsp;查看@<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:integer/config_longAnimTime的具体值可于&lt;SDK_PATH&gt;/platforms/&lt;android-level&gt;/data/res/values/config.xml&nbsp;--&gt;</span></span><span>&nbsp;&nbsp;</span></li><li><strong><span style="color: #993300"><span class="tag">&lt;</span><span class="tag-name">translate</span></span></strong><span>&nbsp;</span><span class="attribute"><span style="color: #ff0000">xmlns:<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a></span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff">&quot;http://schemas.android.com/apk/res/android&quot;</span></span><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><span style="color: #ff0000"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:fromXDelta</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff">&quot;100%p&quot;</span></span><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><span style="color: #ff0000"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:toXDelta</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff">&quot;0&quot;</span></span><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><span style="color: #ff0000"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:duration</span></span><span>=</span><span class="attribute-value"><span style="color: #0000ff">&quot;@android:integer/config_longAnimTime&quot;</span></span><span>&nbsp;&nbsp;</span></li><li><strong><span style="color: #993300"><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">translate</span><span class="tag">&gt;</span></span></strong><span>&nbsp;&nbsp;</span></li></ol></div><p></p><p>&nbsp;&nbsp;&nbsp;&nbsp; 需要反弹的效果还得对Animation设定Interpolator(插值器)，插值器的设定需要一些数学基础了，得找到合适的函数对动画速率进行修正。本例中使用的插值器代码如下： </p><p></p><div class="dp-highlighter bg_xhtml"><div class="bar"><div class="tools"><strong>[xhtml]</strong> </div></div><ol class="dp-xml"><li class="alt"><span><span>package&nbsp;lab.sodino.list_quickaction;&nbsp;&nbsp;</span></span></li><li><span>import&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.util.Log;&nbsp;&nbsp;</span></li><li class="alt"><span>import&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.view.animation.Interpolator;&nbsp;&nbsp;</span></li><li><span>/**&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;*&nbsp;@author&nbsp;Sodino&nbsp;E-mail:sodinoopen@hotmail.com&nbsp;&nbsp;</span></li><li><span>&nbsp;*&nbsp;@version&nbsp;Time：2011-5-3&nbsp;下午08:02:01&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;*/&nbsp;&nbsp;</span></li><li><span>public&nbsp;class&nbsp;CustomInterpolator&nbsp;implements&nbsp;Interpolator&nbsp;&#123;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;input&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A&nbsp;value&nbsp;between&nbsp;0&nbsp;and&nbsp;1.0&nbsp;indicating&nbsp;our&nbsp;current&nbsp;point&nbsp;in&nbsp;the&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;animation&nbsp;where&nbsp;0&nbsp;represents&nbsp;the&nbsp;start&nbsp;and&nbsp;1.0&nbsp;represents&nbsp;the&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;Returns&nbsp;The&nbsp;interpolation&nbsp;value.&nbsp;This&nbsp;value&nbsp;can&nbsp;be&nbsp;more&nbsp;than&nbsp;1.0&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;Interpolators&nbsp;which&nbsp;overshoot&nbsp;their&nbsp;targets,&nbsp;or&nbsp;less&nbsp;than&nbsp;0&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;Interpolators&nbsp;that&nbsp;undershoot&nbsp;their&nbsp;targets.&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;float&nbsp;getInterpolation(float&nbsp;input)&nbsp;&#123;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log.d(&quot;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>_LAB&quot;,&nbsp;&quot;</span><span class="attribute"><span style="color: #ff0000">input</span></span><span>=&quot;&nbsp;+&nbsp;input);&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设定动画的加速度变化值。此例的效果是使用actionsLayout超过目标旋转区后再反弹回来。&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;插值计算公式:&nbsp;1.2-((x*1.55f)-1.1)^2&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;画出函数图的话即可观察出动画执行过程中越过目标区再反弹的详细过程。&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;x&nbsp;:0&nbsp;</span><span class="tag"><strong><span style="color: #993300">&lt;</span></strong></span><span>=&nbsp;v&nbsp;</span><span class="tag"><strong><span style="color: #993300">&lt;</span></strong></span><span>=&nbsp;1.0&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;(x*1.55f)&nbsp;:0&nbsp;</span><span class="tag"><strong><span style="color: #993300">&lt;</span></strong></span><span>=&nbsp;v&nbsp;</span><span class="tag"><strong><span style="color: #993300">&lt;</span></strong></span><span>=&nbsp;1.55&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;((x*1.55f)-1.1)&nbsp;:-1.1&nbsp;</span><span class="tag"><strong><span style="color: #993300">&lt;</span></strong></span><span>=&nbsp;v&nbsp;</span><span class="tag"><strong><span style="color: #993300">&lt;</span></strong></span><span>=&nbsp;0.45&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;((x*1.55f)-1.1)^2&nbsp;:0</span><span class="tag"><strong><span style="color: #993300">&lt;</span></strong></span><span>=&nbsp;v&nbsp;</span><span class="tag"><strong><span style="color: #993300">&lt;</span></strong></span><span>=&nbsp;1.21&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;1.2-((x*1.55f)-1.1)^2&nbsp;:-0.1&nbsp;</span><span class="tag"><strong><span style="color: #993300">&lt;</span></strong></span><span>=&nbsp;v&nbsp;</span><span class="tag"><strong><span style="color: #993300">&lt;</span></strong></span><span>=&nbsp;1.2&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;float&nbsp;</span><span class="attribute"><span style="color: #ff0000">inner</span></span><span>&nbsp;=&nbsp;(input&nbsp;*&nbsp;1.55f)&nbsp;-&nbsp;1.1f;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;如果返回值为常量1的话，则相当于没有动画效果。&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;1.2f&nbsp;-&nbsp;inner&nbsp;*&nbsp;inner;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span></li><li><span>&#125;&nbsp;&nbsp;</span></li></ol></div></div><br/>Tags - <a href="http://www.hihebei.com/go.php/tags/android/" rel="tag">android</a> , <a href="http://www.hihebei.com/go.php/tags/%25E5%25BC%2580%25E5%258F%2591%25E6%2595%2599%25E7%25A8%258B/" rel="tag">开发教程</a>
]]>
</description>
</item><item>
<link>http://www.hihebei.com/read.php/28.htm</link>
<title><![CDATA[Android开发教程：浅谈ToggleButton]]></title> 
<author>hihebei &lt;admin@yourname.com&gt;</author>
<category><![CDATA[Android]]></category>
<pubDate>Sun, 12 Feb 2012 15:47:12 +0000</pubDate> 
<guid>http://www.hihebei.com/read.php/28.htm</guid> 
<description>
<![CDATA[ 
	ToggleButton(开关按钮)是<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>系统中比较简单的一个组件，是一个具有选中和未选择状态双状态的按钮，并且需要为不同的状态设置不同的显示文本。 <p>&nbsp;&nbsp;&nbsp; ToggleButton常用的XML属性</p>&nbsp;&nbsp;<table border="0" cellspacing="0" cellpadding="0" class="MsoNormalTable" style="margin: auto auto auto 5.4pt; border-collapse: collapse"> <tbody> <tr style="height: 13.55pt"> <td width="194" valign="top" style="border-width: 1pt; border-style: solid; border-color: black; padding: 0cm 5.4pt; width: 145.55pt; background: none repeat scroll 0% 0% #dee8f1; height: 13.55pt"> <p style="text-align: center; margin: 0cm 0cm 0pt" class="MsoNormal" align="center"><span style="font-size: 12pt; font-family: 宋体">属性名称</span></p></td> <td width="275" valign="top" style="border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: black black black #f0f0f0; padding: 0cm 5.4pt; width: 206.2pt; background: none repeat scroll 0% 0% #dee8f1; height: 13.55pt"> <p style="text-align: center; margin: 0cm 0cm 0pt" class="MsoNormal" align="center"><span style="font-size: 12pt; font-family: 宋体">描述</span></p></td></tr> <tr style="height: 227.6pt"> <td width="194" style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: #f0f0f0 black black; padding: 0cm 5.4pt; background-color: transparent; width: 145.55pt; height: 227.6pt"> <p style="text-align: center; margin: 0cm 0cm 0pt" class="MsoNormal" align="center"><strong><span style="font-size: 12pt; font-family: 宋体; color: #c00000"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:disabledAlpha</span></strong></p></td> <td width="275" style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); padding: 0cm 5.4pt; background-color: transparent; width: 206.2pt; height: 227.6pt"> <p style="text-align: center; margin: 0cm 0cm 0pt" class="MsoNormal" align="center"><span style="font-size: 12pt; font-family: 宋体">设置按钮在禁用时透明度。</span></p> <p style="text-align: center">&nbsp;<img class="insertimage" src="attachment.php?fid=50" border="0" /></p></td></tr> <tr style="height: 13.55pt"> <td width="194" style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: #f0f0f0 black black; padding: 0cm 5.4pt; background-color: transparent; width: 145.55pt; height: 13.55pt"> <p style="text-align: center; margin: 0cm 0cm 0pt" class="MsoNormal" align="center"><strong><span style="font-size: 12pt; font-family: 宋体; color: #c00000"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:textOff</span></strong></p></td> <td width="275" style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); padding: 0cm 5.4pt; background-color: transparent; width: 206.2pt; height: 13.55pt"> <p style="text-align: center; margin: 0cm 0cm 0pt" class="MsoNormal" align="center"><span style="font-size: 12pt; font-family: 宋体">未选中时按钮的文本</span></p></td></tr> <tr style="height: 14.25pt"> <td width="194" style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: #f0f0f0 black black; padding: 0cm 5.4pt; background-color: transparent; width: 145.55pt; height: 14.25pt"> <p style="text-align: center; margin: 0cm 0cm 0pt" class="MsoNormal" align="center"><strong><span style="font-size: 12pt; font-family: 宋体; color: #c00000"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:textOn</span></strong></p></td> <td width="275" style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: rgb(240, 240, 240) black black rgb(240, 240, 240); padding: 0cm 5.4pt; background-color: transparent; width: 206.2pt; height: 14.25pt"> <p style="text-align: center; margin: 0cm 0cm 0pt" class="MsoNormal" align="center"><span style="font-size: 12pt; font-family: 宋体">选中时按钮的文本</span></p></td></tr></tbody></table>&nbsp;&nbsp;<p>下面是具体的例子：</p> <p>第一个例子是通过Toast显示ToggleButton不同的状态时的信息</p> <p>MainActivity.java</p><pre><ol class="dp-j"><li class="alt"><span><span class="keyword">package</span><span>&nbsp;com.<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.togglebutton; &nbsp;</span></span></li><li><span>&nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.app.Activity; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.os.Bundle; &nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.view.View; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.view.View.OnClickListener; &nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.Toast; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.ToggleButton; &nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;MainActivity&nbsp;</span><span class="keyword">extends</span><span>&nbsp;Activity&nbsp;&#123; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #000088">//声明ToggleButton </span></span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;ToggleButton&nbsp;togglebutton; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;onCreate(Bundle&nbsp;savedInstanceState)&nbsp;&#123; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">super</span><span>.onCreate(savedInstanceState); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.main); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;togglebutton&nbsp;=&nbsp;(ToggleButton)&nbsp;findViewById(R.id.togglebutton); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;togglebutton.setOnClickListener(</span><span class="keyword">new</span><span>&nbsp;OnClickListener()&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;onClick(View&nbsp;v)&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #000088">//&nbsp;当按钮第一次被点击时候响应的事件&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(togglebutton.isChecked())&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Toast.makeText(MainActivity.</span><span class="keyword">this</span><span>,&nbsp;</span><span class="string">&quot;你喜欢球类运动&quot;</span><span>,&nbsp;Toast.LENGTH_SHORT).show();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #000088">//&nbsp;当按钮再次被点击时候响应的事件 </span></span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span><span>&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Toast.makeText(MainActivity.</span><span class="keyword">this</span><span>,&nbsp;</span><span class="string">&quot;你不喜欢球类运动&quot;</span><span>,&nbsp;Toast.LENGTH_SHORT).show();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;</span></li><li><span>&#125;&nbsp;</span></li></ol></pre> <p>main.xml</p><pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;utf-8&quot;</span><span class="tag">?&gt;</span><span>&nbsp;</span></span></li><li><span class="tag">&lt;</span><span class="tag-name">LinearLayout</span><span>&nbsp;</span><span class="attribute">xmlns:<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a></span><span>=</span><span class="attribute-value">&quot;http://schemas.android.com/apk/res/android&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:orientation</span><span>=</span><span class="attribute-value">&quot;vertical&quot;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_height</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">TextView</span><span>&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:text</span><span>=</span><span class="attribute-value">&quot;@string/hello&quot;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">ToggleButton</span><span>&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:id</span><span>=</span><span class="attribute-value">&quot;@+id/togglebutton&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:textOn</span><span>=</span><span class="attribute-value">&quot;喜欢&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:textOff</span><span>=</span><span class="attribute-value">&quot;不喜欢&quot;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></li><li class="alt"><span class="tag">&lt;/</span><span class="tag-name">LinearLayout</span><span class="tag">&gt;</span><span>&nbsp;</span></li></ol></pre> <p>strings.xml</p><pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;utf-8&quot;</span><span class="tag">?&gt;</span><span>&nbsp;</span></span></li><li><span class="tag">&lt;</span><span class="tag-name">resources</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">string</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;hello&quot;</span><span class="tag">&gt;</span><span>你喜不喜欢球类运动？</span><span class="tag">&lt;/</span><span class="tag-name">string</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">string</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;app_name&quot;</span><span class="tag">&gt;</span><span>测试ToggleButton</span><span class="tag">&lt;/</span><span class="tag-name">string</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span class="tag">&lt;/</span><span class="tag-name">resources</span><span class="tag">&gt;</span><span>&nbsp;</span></li></ol></pre> <p>效果图：</p> <p><img class="insertimage" src="attachment.php?fid=51" border="0" /></p><p>第二个例子通过图片的变化显示ToggleButton不同的状态时的图片</p> <p>MainActivity.java</p><pre><ol class="dp-j"><li class="alt"><span><span class="keyword">package</span><span>&nbsp;com.<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.togglebutton; &nbsp;</span></span></li><li><span>&nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.app.Activity; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.os.Bundle; &nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;android.widget.CompoundButton; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.CompoundButton.OnCheckedChangeListener; &nbsp;</span></li><li class="alt"><span class="keyword">import</span><span>&nbsp;android.widget.ImageView; &nbsp;</span></li><li><span class="keyword">import</span><span>&nbsp;<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.ToggleButton; &nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;MainActivity&nbsp;</span><span class="keyword">extends</span><span>&nbsp;Activity&nbsp;&#123; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #000088">//声明ImageView，ToggleButton </span></span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;ImageView&nbsp;imageView;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;ToggleButton&nbsp;toggleButton;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;onCreate(Bundle&nbsp;savedInstanceState)&nbsp;&#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">super</span><span>.onCreate(savedInstanceState);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.main);&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #000088">//通过findViewById获得ImageView，ToggleButton </span></span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imageView=(ImageView)&nbsp;findViewById(R.id.imageView);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;toggleButton=(ToggleButton)findViewById(R.id.toggleButton);&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;toggleButton.setOnCheckedChangeListener(</span><span class="keyword">new</span><span>&nbsp;OnCheckedChangeListener()&#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;onCheckedChanged(CompoundButton&nbsp;buttonView,</span><span class="keyword">boolean</span><span>&nbsp;isChecked)&nbsp;&#123;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;toggleButton.setChecked(isChecked); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment"><span style="color: #000088">//使用三目运算符来响应按钮变换的事件 </span></span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imageView.setImageResource(isChecked?R.drawable.pic_on:R.drawable.pic_off); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125; &nbsp;</span></li><li><span>&#125; &nbsp;</span></li></ol></pre> <p>main.xml</p><pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;utf-8&quot;</span><span class="tag">?&gt;</span><span>&nbsp;</span></span></li><li><span class="tag">&lt;</span><span class="tag-name">LinearLayout</span><span>&nbsp;</span><span class="attribute">xmlns:<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a></span><span>=</span><span class="attribute-value">&quot;http://schemas.android.com/apk/res/android&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:orientation</span><span>=</span><span class="attribute-value">&quot;vertical&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">ImageView</span><span>&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:id</span><span>=</span><span class="attribute-value">&quot;@+id/imageView&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:src</span><span>=</span><span class="attribute-value">&quot;@drawable/pic_off&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_gravity</span><span>=</span><span class="attribute-value">&quot;center_horizontal&quot;</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">ToggleButton</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:id</span><span>=</span><span class="attribute-value">&quot;@+id/toggleButton&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_width</span><span>=</span><span class="attribute-value">&quot;130dip&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:textOn</span><span>=</span><span class="attribute-value">&quot;开灯&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:textOff</span><span>=</span><span class="attribute-value">&quot;关灯&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_gravity</span><span>=</span><span class="attribute-value">&quot;center_horizontal&quot;</span><span>&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></li><li class="alt"><span class="tag">&lt;/</span><span class="tag-name">LinearLayout</span><span class="tag">&gt;</span><span>&nbsp;</span></li></ol></pre> <p>效果图：</p> <p><img class="insertimage" src="attachment.php?fid=52" border="0" /><img class="insertimage" src="attachment.php?fid=53" border="0" /></p><p>&nbsp;</p><br/>Tags - <a href="http://www.hihebei.com/go.php/tags/android/" rel="tag">android</a> , <a href="http://www.hihebei.com/go.php/tags/%25E5%25BC%2580%25E5%258F%2591%25E6%2595%2599%25E7%25A8%258B/" rel="tag">开发教程</a>
]]>
</description>
</item><item>
<link>http://www.hihebei.com/read.php/27.htm</link>
<title><![CDATA[Android开发教程：浅谈显示Intent和隐式Intent]]></title> 
<author>hihebei &lt;admin@yourname.com&gt;</author>
<category><![CDATA[Android]]></category>
<pubDate>Sun, 12 Feb 2012 15:39:24 +0000</pubDate> 
<guid>http://www.hihebei.com/read.php/27.htm</guid> 
<description>
<![CDATA[ 
	<p><strong><span style="font-size: 20px">Intent寻找目标组件的两种方式：</span></strong></p> <ul><li><span style="font-family: 宋体"><span style="color: #000000"><span style="font-size: 16px">显式Intent：通过指定Intent组件名称来实现的，它一般用在知道目标组件名称的前提下，一般是在相同的应用程序内部实现的。 </span></span></span></li><li><span style="font-family: 宋体"><span style="color: #000000"><span style="font-size: 16px">隐式Intent：通过Intent Filter来实现的，它一般用在没有明确指出目标组件名称的前提下，一般是用于在不同应用程序之间。</span></span><span style="font-size: 16px"> </span></span></li></ul> <p><strong><span style="font-size: 20px"><span style="font-family: Times New Roman">一.显式Intent </span></span></strong></p> <p><span style="font-size: 20px"><span style="font-family: Times New Roman"><span style="font-size: 16px"><span style="font-family: 宋体">&nbsp;</span></span><span style="font-family: 宋体"><span style="font-size: 16px">&nbsp; </span><span style="font-size: 16px">一般情况下，一个<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>应用程序中需要多个屏幕，即是多个Activity类，并且在这些Activity之间进行切换通过Intent机制来实现的。在同一个应用程序中切换Activity时，我们通常都知道要启动的Activity具体是哪一个，因此常用显式的Intent来实现的。</span></span></span></span></p> <p><span style="font-size: 16px"><span style="color: #000000">&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体"><span style="color: #000000">下 面的例子是在同一应用程序中MainActivity启动SecondActivity，下面的代码中，主要是为&ldquo;转到SecondActivity&rdquo;按 钮添加了OnClickListener，使得按钮被点击时执行onClick()方法，onClick()方法中则利用了Intent机制，来启动 SecondActivity，关键的代码是22~25行。</span></span></span></p> <p>main.xml</p><pre><ol class="dp-xml"><li class="alt"><span><span style="color: #5c5c5c"><span class="tag">&lt;?</span><span class="tag-name">xml</span><span> </span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span> </span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;utf-8&quot;</span><span class="tag">?&gt;</span><span> </span></span></span></li><li><span style="color: #5c5c5c"><span class="tag">&lt;</span><span class="tag-name">LinearLayout</span><span> </span><span class="attribute">xmlns:<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a></span><span>=</span><span class="attribute-value">&quot;http://schemas.android.com/apk/res/android&quot;</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:orientation</span><span>=</span><span class="attribute-value">&quot;vertical&quot;</span><span> </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_height</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span> </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&gt;</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">TextView</span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp;&nbsp; </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;&nbsp; </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:text</span><span>=</span><span class="attribute-value">&quot;@string/hello1&quot;</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span> </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">Button</span><span>&nbsp;&nbsp; </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:id</span><span>=</span><span class="attribute-value">&quot;@+id/btn&quot;</span><span> </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;&nbsp; </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;&nbsp; </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:text</span><span>=</span><span class="attribute-value">&quot;转到SecondActivity&quot;</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span> </span></span></li><li><span style="color: #5c5c5c"><span class="tag">&lt;/</span><span class="tag-name">LinearLayout</span><span class="tag">&gt;</span><span> </span></span></li></ol></pre> <p>second.xml</p><pre><ol class="dp-xml"><li class="alt"><span><span style="color: #5c5c5c"><span class="tag">&lt;?</span><span class="tag-name">xml</span><span> </span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span> </span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;utf-8&quot;</span><span class="tag">?&gt;</span><span> </span></span></span></li><li><span style="color: #5c5c5c"><span class="tag">&lt;</span><span class="tag-name">LinearLayout</span><span> </span><span class="attribute">xmlns:<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a></span><span>=</span><span class="attribute-value">&quot;http://schemas.android.com/apk/res/android&quot;</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:orientation</span><span>=</span><span class="attribute-value">&quot;vertical&quot;</span><span> </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_height</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span> </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&gt;</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">TextView</span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp;&nbsp; </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;&nbsp; </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:text</span><span>=</span><span class="attribute-value">&quot;@string/hello2&quot;</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span> </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">Button</span><span>&nbsp;&nbsp; </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:id</span><span>=</span><span class="attribute-value">&quot;@+id/secondBtn&quot;</span><span> </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;&nbsp; </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;&nbsp; </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:text</span><span>=</span><span class="attribute-value">&quot;返回&quot;</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span> </span></span></li><li><span style="color: #5c5c5c"><span class="tag">&lt;/</span><span class="tag-name">LinearLayout</span><span class="tag">&gt;</span><span> </span></span></li></ol></pre> <p>MainActivity.java</p><pre><ol class="dp-j"><li class="alt"><span><span style="color: #5c5c5c"><span class="keyword">package</span><span> com.<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.test.activity;&nbsp;&nbsp;</span></span></span></li><li><span><span style="color: #5c5c5c"> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span class="keyword">import</span><span> <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.app.Activity;&nbsp;&nbsp;</span></span></li><li><span style="color: #5c5c5c"><span class="keyword">import</span><span> <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.content.Intent;&nbsp;&nbsp;</span></span></li><li class="alt"><span style="color: #5c5c5c"><span class="keyword">import</span><span> <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.os.Bundle;&nbsp;&nbsp;</span></span></li><li><span style="color: #5c5c5c"><span class="keyword">import</span><span> <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.view.View;&nbsp;&nbsp;</span></span></li><li class="alt"><span style="color: #5c5c5c"><span class="keyword">import</span><span> <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.view.View.OnClickListener;&nbsp;&nbsp;</span></span></li><li><span style="color: #5c5c5c"><span class="keyword">import</span><span> <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.Button;&nbsp;&nbsp;</span></span></li><li class="alt"><span><span style="color: #5c5c5c"> </span></span></li><li><span style="color: #5c5c5c"><span class="keyword">public</span><span> </span><span class="keyword">class</span><span> MainActivity </span><span class="keyword">extends</span><span> Activity &#123;&nbsp;&nbsp;</span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span> Button btn;&nbsp;&nbsp;</span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> onCreate(Bundle savedInstanceState) &#123;&nbsp;&nbsp;</span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">super</span><span>.onCreate(savedInstanceState);&nbsp;&nbsp;</span></span></li><li class="alt"><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.main);&nbsp;&nbsp;</span></span></li><li><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li><li class="alt"><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;btn = (Button)findViewById(R.id.btn);&nbsp;&nbsp;</span></span></li><li><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span class="comment"><span style="color: #000088">//响应按钮btn事件 </span></span><span><span style="color: #5c5c5c"> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;btn.setOnClickListener(</span><span class="keyword">new</span><span> OnClickListener() &#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> onClick(View v) &#123;&nbsp;&nbsp;</span></span></li><li><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span class="comment"><span style="color: #000088">//显示方式声明Intent，直接启动SecondActivity </span></span><span><span style="color: #5c5c5c"> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent it = </span><span class="keyword">new</span><span> Intent(MainActivity.</span><span class="keyword">this</span><span>,SecondActivity.</span><span class="keyword">class</span><span>);&nbsp;&nbsp;</span></span></li><li><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span class="comment"><span style="color: #000088">//启动Activity </span></span><span><span style="color: #5c5c5c"> </span></span></li><li class="alt"><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;startActivity(it);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li><li><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span></span></li><li class="alt"><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;);&nbsp;&nbsp;</span></span></li><li><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span></span></li><li class="alt"><span><span style="color: #5c5c5c">&#125; </span></span></li></ol></pre> <p>SecondActivity.java</p><pre><ol class="dp-j"><li class="alt"><span><span style="color: #5c5c5c"><span class="keyword">package</span><span> com.<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.test.activity;&nbsp;&nbsp;</span></span></span></li><li><span><span style="color: #5c5c5c"> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span class="keyword">import</span><span> <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.app.Activity;&nbsp;&nbsp;</span></span></li><li><span style="color: #5c5c5c"><span class="keyword">import</span><span> <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.content.Intent;&nbsp;&nbsp;</span></span></li><li class="alt"><span style="color: #5c5c5c"><span class="keyword">import</span><span> <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.os.Bundle;&nbsp;&nbsp;</span></span></li><li><span style="color: #5c5c5c"><span class="keyword">import</span><span> <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.view.View;&nbsp;&nbsp;</span></span></li><li class="alt"><span style="color: #5c5c5c"><span class="keyword">import</span><span> <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.view.View.OnClickListener;&nbsp;&nbsp;</span></span></li><li><span style="color: #5c5c5c"><span class="keyword">import</span><span> <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.Button;&nbsp;&nbsp;</span></span></li><li class="alt"><span><span style="color: #5c5c5c"> </span></span></li><li><span style="color: #5c5c5c"><span class="keyword">public</span><span> </span><span class="keyword">class</span><span> SecondActivity </span><span class="keyword">extends</span><span> Activity &#123;&nbsp;&nbsp;</span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span> Button secondBtn;&nbsp;&nbsp;</span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">protected</span><span> </span><span class="keyword">void</span><span> onCreate(Bundle savedInstanceState) &#123;&nbsp;&nbsp;</span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">super</span><span>.onCreate(savedInstanceState);&nbsp;&nbsp;</span></span></li><li class="alt"><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.second);&nbsp;&nbsp;</span></span></li><li><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li><li class="alt"><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secondBtn=(Button)findViewById(R.id.secondBtn);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li><li><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span class="comment"><span style="color: #000088">//响应按钮secondBtn事件 </span></span><span><span style="color: #5c5c5c"> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secondBtn.setOnClickListener(</span><span class="keyword">new</span><span> OnClickListener() &#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> onClick(View v) &#123;&nbsp;&nbsp;</span></span></li><li><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span class="comment"><span style="color: #000088">//显示方式声明Intent，直接启动MainActivity </span></span><span><span style="color: #5c5c5c"> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent intent = </span><span class="keyword">new</span><span> Intent(SecondActivity.</span><span class="keyword">this</span><span>,MainActivity.</span><span class="keyword">class</span><span>);&nbsp;&nbsp;</span></span></li><li><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span class="comment"><span style="color: #000088">//启动Activity </span></span><span><span style="color: #5c5c5c"> </span></span></li><li class="alt"><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;startActivity(intent);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li><li><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span></span></li><li class="alt"><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;);&nbsp;&nbsp;</span></span></li><li><span><span style="color: #5c5c5c">&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span></span></li><li class="alt"><span><span style="color: #5c5c5c">&#125; </span></span></li></ol></pre> <p><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>Manifest.xml清单文件，16~18行为SecondActivity在清单文件里的声明</p><pre><ol class="dp-xml"><li class="alt"><span><span style="color: #5c5c5c"><span class="tag">&lt;?</span><span class="tag-name">xml</span><span> </span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span> </span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;utf-8&quot;</span><span class="tag">?&gt;</span><span> </span></span></span></li><li><span style="color: #5c5c5c"><span class="tag">&lt;</span><span class="tag-name">manifest</span><span> </span><span class="attribute">xmlns:<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a></span><span>=</span><span class="attribute-value">&quot;http://schemas.android.com/apk/res/android&quot;</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">package</span><span>=</span><span class="attribute-value">&quot;com.<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.test.activity&quot;</span><span> </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:versionCode</span><span>=</span><span class="attribute-value">&quot;1&quot;</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:versionName</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span class="tag">&gt;</span><span> </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">uses-sdk</span><span> </span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:minSdkVersion</span><span>=</span><span class="attribute-value">&quot;10&quot;</span><span> </span><span class="tag">/&gt;</span><span> </span></span></li><li class="alt"><span><span style="color: #5c5c5c"> </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">application</span><span> </span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:icon</span><span>=</span><span class="attribute-value">&quot;@drawable/icon&quot;</span><span> </span><span class="attribute">android:label</span><span>=</span><span class="attribute-value">&quot;@string/app_name&quot;</span><span class="tag">&gt;</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">activity</span><span> </span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:name</span><span>=</span><span class="attribute-value">&quot;.MainActivity&quot;</span><span> </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:label</span><span>=</span><span class="attribute-value">&quot;@string/app_name&quot;</span><span class="tag">&gt;</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">intent-filter</span><span class="tag">&gt;</span><span> </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">action</span><span> </span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:name</span><span>=</span><span class="attribute-value">&quot;android.intent.action.MAIN&quot;</span><span> </span><span class="tag">/&gt;</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">category</span><span> </span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:name</span><span>=</span><span class="attribute-value">&quot;android.intent.category.LAUNCHER&quot;</span><span> </span><span class="tag">/&gt;</span><span> </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">intent-filter</span><span class="tag">&gt;</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">activity</span><span class="tag">&gt;</span><span> </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">activity</span><span> </span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:name</span><span>=</span><span class="attribute-value">&quot;.SecondActivity&quot;</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:label</span><span>=</span><span class="attribute-value">&quot;@string/app_name&quot;</span><span class="tag">&gt;</span><span> </span></span></li><li><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">activity</span><span class="tag">&gt;</span><span> </span></span></li><li class="alt"><span style="color: #5c5c5c"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">application</span><span class="tag">&gt;</span><span> </span></span></li><li><span style="color: #5c5c5c"><span class="tag">&lt;/</span><span class="tag-name">manifest</span><span class="tag">&gt;</span><span> </span></span></li></ol></pre> <p>效果图：</p> <p><img class="insertimage" src="attachment.php?fid=45" border="0" /><img class="insertimage" src="attachment.php?fid=47" border="0" /></p><div id="content"><p><span style="font-size: 20px"><span style="font-family: Times New Roman"><strong>二.隐式Intent </strong></span></span></p> <p><span style="font-family: Times New Roman"><span style="font-family: 宋体">&nbsp;&nbsp; </span></span><span style="font-family: 宋体">下面是同一应用程序中的Activity切换的例子，需要<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>Manifest.xml中增加Activity的声明，并设置对应的Intent Filter和Action，才能被Android的应用程序框架所匹配。</span></p><table border="0" width="97%" align="center"><tbody><tr><td colspan="3">&nbsp;</td></tr></tbody></table> <p><span style="font-size: 20px"><span style="font-family: Times New Roman"><span style="font-size: 16px"><span style="font-family: 宋体">MainActivity.java</span></span></span></span></p><pre><ol class="dp-j"><li class="alt"><span><span class="keyword">package</span><span> com.<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.change.activity;&nbsp;&nbsp;</span></span></li><li><span> </span></li><li class="alt"><span class="keyword">import</span><span> <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.app.Activity;&nbsp;&nbsp;</span></li><li><span class="keyword">import</span><span> <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.content.Intent;&nbsp;&nbsp;</span></li><li class="alt"><span class="keyword">import</span><span> android.os.Bundle;&nbsp;&nbsp;</span></li><li><span class="keyword">import</span><span> <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.view.View;&nbsp;&nbsp;</span></li><li class="alt"><span class="keyword">import</span><span> android.view.View.OnClickListener;&nbsp;&nbsp;</span></li><li><span class="keyword">import</span><span> <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.widget.Button;&nbsp;&nbsp;</span></li><li class="alt"><span> </span></li><li><span class="keyword">public</span><span> </span><span class="keyword">class</span><span> MainActivity </span><span class="keyword">extends</span><span> Activity &#123;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span> Button btn;&nbsp;&nbsp;</span></li><li><span> </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span> </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> onCreate(Bundle savedInstanceState) &#123;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">super</span><span>.onCreate(savedInstanceState);&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.main);&nbsp;&nbsp;</span></li><li class="alt"><span> </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;btn = (Button) findViewById(R.id.btn);&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">// 响应按钮btn事件 </span><span> </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;btn.setOnClickListener(</span><span class="keyword">new</span><span> OnClickListener() &#123;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span> </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> onClick(View v) &#123;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">// 实例化Intent </span><span> </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent it = </span><span class="keyword">new</span><span> Intent();&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//设置Intent的Action属性 </span><span> </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it.setAction(</span><span class="string">&quot;com.<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.activity.MY_ACTION&quot;</span><span>);&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">// 启动Activity </span><span> </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;startActivity(it);&nbsp;&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;);&nbsp;&nbsp;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span></li><li><span>&#125;&nbsp;&nbsp;</span></li></ol></pre> <p>SecondActivity.java</p><pre><ol class="dp-j"><li class="alt"><span><span class="keyword">package</span><span> com.<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.change.activity;&nbsp;&nbsp;</span></span></li><li><span> </span></li><li class="alt"><span class="keyword">import</span><span> <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.app.Activity;&nbsp;&nbsp;</span></li><li><span class="keyword">import</span><span> <a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>.os.Bundle;&nbsp;&nbsp;</span></li><li class="alt"><span> </span></li><li><span class="keyword">public</span><span> </span><span class="keyword">class</span><span> SecondActivity </span><span class="keyword">extends</span><span> Activity &#123;&nbsp;&nbsp;</span></li><li class="alt"><span> </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span> </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">protected</span><span> </span><span class="keyword">void</span><span> onCreate(Bundle savedInstanceState) &#123;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">super</span><span>.onCreate(savedInstanceState);&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.second);&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span></li><li class="alt"><span>&#125;&nbsp;&nbsp;</span></li></ol></pre> <p>main.xml</p><pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span> </span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span> </span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;utf-8&quot;</span><span class="tag">?&gt;</span><span> </span></span></li><li><span class="tag">&lt;</span><span class="tag-name">LinearLayout</span><span> </span><span class="attribute">xmlns:<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a></span><span>=</span><span class="attribute-value">&quot;http://schemas.android.com/apk/res/android&quot;</span><span> </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:orientation</span><span>=</span><span class="attribute-value">&quot;vertical&quot;</span><span>&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span> </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span> </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&gt;</span><span> </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">TextView</span><span>&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span> </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span> </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">Button</span><span>&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:id</span><span>=</span><span class="attribute-value">&quot;@+id/btn&quot;</span><span>&nbsp;&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_width</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span> </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span> </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:text</span><span>=</span><span class="attribute-value">&quot;转到SecondActivity&quot;</span><span>&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span> </span></li><li class="alt"><span class="tag">&lt;/</span><span class="tag-name">LinearLayout</span><span class="tag">&gt;</span><span> </span></li></ol></pre> <p>seond.xml</p><pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span> </span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span> </span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;utf-8&quot;</span><span class="tag">?&gt;</span><span>&nbsp;&nbsp; </span></span></li><li><span class="tag">&lt;</span><span class="tag-name">LinearLayout</span><span> </span><span class="attribute">xmlns:<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a></span><span>=</span><span class="attribute-value">&quot;http://schemas.android.com/apk/res/android&quot;</span><span>&nbsp;&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp; </span><span class="attribute">android:orientation</span><span>=</span><span class="attribute-value">&quot;vertical&quot;</span><span>&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp; </span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp;&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp; </span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp; </span><span class="tag">&gt;</span><span>&nbsp;&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp; </span><span class="tag">&lt;</span><span class="tag-name">TextView</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:layout_width</span><span>=</span><span class="attribute-value">&quot;fill_parent&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">&quot;wrap_content&quot;</span><span>&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:text</span><span>=</span><span class="attribute-value">&quot;@string/second&quot;</span><span>&nbsp;&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp; </span></li><li><span class="tag">&lt;/</span><span class="tag-name">LinearLayout</span><span class="tag">&gt;</span><span> </span></li></ol></pre> <p><span style="font-size: 16px">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000"><span style="font-size: 16px"> </span><span style="font-family: 宋体"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>Manifest.xml 文件的18,19行修改了Intent&nbsp;&nbsp;Filter，这样SecondActivity才能够接收到MainActivity发送的Intent。因为在MainActivity的 Intent发送的动作为&quot;com.android.activity.MY_ACTION&quot;，而在18行里，SecondActivity设置的 Action也为&quot;com.android.activity.MY_ACTION&quot;，这样就能进行匹配。</span></span></p><pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span> </span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span> </span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;utf-8&quot;</span><span class="tag">?&gt;</span><span> </span></span></li><li><span class="tag">&lt;</span><span class="tag-name">manifest</span><span> </span><span class="attribute">xmlns:<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a></span><span>=</span><span class="attribute-value">&quot;http://schemas.android.com/apk/res/android&quot;</span><span> </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">package</span><span>=</span><span class="attribute-value">&quot;com.android.change.activity&quot;</span><span> </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:versionCode</span><span>=</span><span class="attribute-value">&quot;1&quot;</span><span> </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">android:versionName</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span class="tag">&gt;</span><span> </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">uses-sdk</span><span> </span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:minSdkVersion</span><span>=</span><span class="attribute-value">&quot;10&quot;</span><span> </span><span class="tag">/&gt;</span><span> </span></li><li class="alt"><span> </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">application</span><span> </span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:icon</span><span>=</span><span class="attribute-value">&quot;@drawable/icon&quot;</span><span> </span><span class="attribute">android:label</span><span>=</span><span class="attribute-value">&quot;@string/app_name&quot;</span><span class="tag">&gt;</span><span> </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">activity</span><span> </span><span class="attribute">android:name</span><span>=</span><span class="attribute-value">&quot;.MainActivity&quot;</span><span> </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:label</span><span>=</span><span class="attribute-value">&quot;@string/app_name&quot;</span><span class="tag">&gt;</span><span> </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">intent-filter</span><span class="tag">&gt;</span><span> </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">action</span><span> </span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:name</span><span>=</span><span class="attribute-value">&quot;android.intent.action.MAIN&quot;</span><span> </span><span class="tag">/&gt;</span><span> </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">category</span><span> </span><span class="attribute">android:name</span><span>=</span><span class="attribute-value">&quot;android.intent.category.LAUNCHER&quot;</span><span> </span><span class="tag">/&gt;</span><span> </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">intent-filter</span><span class="tag">&gt;</span><span> </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">activity</span><span class="tag">&gt;</span><span> </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">activity</span><span> </span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:name</span><span>=</span><span class="attribute-value">&quot;.SecondActivity&quot;</span><span> </span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">intent-filter</span><span class="tag">&gt;</span><span>&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">action</span><span>&nbsp;&nbsp;</span><span class="attribute"><a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>:name</span><span> = </span><span class="attribute-value">&quot;com.android.activity.MY_ACTION&quot;</span><span>&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">category</span><span> </span><span class="attribute">android:name</span><span> = </span><span class="attribute-value">&quot;android.intent.category.DEFAULT&quot;</span><span>&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="tag">&lt;/</span><span class="tag-name">intent-filter</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">activity</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">application</span><span class="tag">&gt;</span><span> </span></li><li class="alt"><span class="tag">&lt;/</span><span class="tag-name">manifest</span><span class="tag">&gt;</span><span> </span></li></ol></pre> <p>效果图：</p> <p>&nbsp;<img class="insertimage" src="attachment.php?fid=48" border="0" /><img class="insertimage" src="attachment.php?fid=49" border="0" /></p> <p>&nbsp;</p> <p><span style="font-size: 20px"><span style="font-family: Times New Roman"><span style="color: #000000"><span style="font-size: small">&nbsp;&nbsp;&nbsp; </span></span></span></span><span style="font-family: 宋体"><span style="font-size: 20px"><span style="color: #000000"><span style="font-size: small">对于显示Intent，<a href="http://www.linuxidc.com/topicnews.aspx?tid=11" title="Android">Android</a>不 需要再去做解析，因为目标组件很明确。Android需要解析的是隐式Intent，通过解析，将Intent映射给可以处理该Intent的 Activity，Service等。Intent的解析机制主要是通过查找已经注册在AndroidManifest.xml中的所有 IntentFilter以</span></span></span><span style="font-size: 20px"><span style="color: #000000"><span style="font-size: small">及其中定义的Intent，最终找到匹配的Intent。</span></span></span></span></p></div><br/>Tags - <a href="http://www.hihebei.com/go.php/tags/android/" rel="tag">android</a> , <a href="http://www.hihebei.com/go.php/tags/%25E5%25BC%2580%25E5%258F%2591%25E6%2595%2599%25E7%25A8%258B/" rel="tag">开发教程</a>
]]>
</description>
</item>
</channel>
</rss>
